Je dois supprimer tous les dossiers vides de mon dossier d'application à l'aide de l'invite de commande de Windows ?
Comment puis-je créer un fichier bat comme celui-là ?
Aidez-moi, s'il vous plaît.
Je dois supprimer tous les dossiers vides de mon dossier d'application à l'aide de l'invite de commande de Windows ?
Comment puis-je créer un fichier bat comme celui-là ?
Aidez-moi, s'il vous plaît.
À partir de la ligne de commande : for /R /D %1 in (*) do rd "%1"
dans un fichier batch for /R /D %%1 in (*) do rd "%%1"
Je ne sais pas si c'est documenté comme tel, mais cela fonctionne sous W2K, XP et Win 7. Et je ne sais pas si cela fonctionnera toujours, mais il ne supprimera jamais de fichiers par accident.
C'est un hybride de ce qui précède. Il supprime TOUS les fichiers de plus de X jours et supprime tous les dossiers vides pour le chemin donné. Pour l'utiliser, il suffit de définir les jours, le chemin du dossier et le lecteur.
@echo off
SETLOCAL
set days=30
set folderpath=E:\TEST\
set drive=E:
::Delete files
forfiles -p %folderpath% -s -d -%days% -c "cmd /c del /q @path "
::Delete folders
cd %folderpath%
%drive%
for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"`
Installez n'importe quel interpréteur UNIX pour Windows (Cygwin ou Git Bash) et exécutez la commande cmd :
find /path/to/directory -empty -type d
To find them
find /path/to/directory -empty -type d -delete
To delete them
(je n'utilise pas vraiment l'invite cmd de Windows mais c'est facile et cela a pris quelques secondes à exécuter)
Cela fonctionnera bien. C'est la meilleure façon de supprimer les vieux fichiers et de supprimer les répertoires vides de façon récursive. Le fichier .bat suivant est,
forfiles /p [PATH] /s /m [FILE-PATTERN] /d -[DAYS] /c "cmd /c del @path"
for /f "delims=" %%d in ('dir [PATH] /s /b /ad ^| sort /r') do rd "%%d"
Les caractères de remplacement doivent être remplacés comme suit (sans les guillemets) :
[DAYS] = Max. age of the files in days, e.g. “10”
[PATH] = Path to search for old files and empty folders, e.g. “C:\Backup\”
[FILE-PATTERN] = Pattern that matches files to delete, e.g. “*.bkp”
Le script a été testé avec succès sous Windows 7 et Windows Server 2003.
@echo off
set /p "ipa= ENTER FOLDER NAME TO DELETE> "
set ipad="%ipa%"
IF not EXIST %ipad% GOTO notfound
IF EXIST %ipad% GOTO found
:found
echo DONOT CLOSE THIS WINDOW
md ccooppyy
xcopy %ipad%\*.* ccooppyy /s > NUL
rd %ipad% /s /q
ren ccooppyy %ipad%
cls
echo SUCCESS, PRESS ANY KEY TO EXIT
pause > NUL
exit
:notfound
echo I COULDN'T FIND THE FOLDER %ipad%
pause
exit
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.