3 votes

Fichier batch pour supprimer tous les dossiers dans un répertoire sauf une liste spécifiée

Je cherche un fichier batch qui ira dans C:\Documents and Settings\ et supprimera tous les dossiers sauf quelques-uns que je veux conserver.

4voto

Mechaflash Points 2483

Voici une astuce astuce =D

Si vous avez une liste de chemins de dossiers dans disons folders.txt répertoriés comme suit :

  • C:\Documents and Settings\Mechaflash
  • C:\Documents and Settings\Mom
  • C:\Documents and Settings\Dad

etc. Ce que vous pouvez faire, c'est de changer temporairement les dossiers en dossiers cachés, puis de supprimer tous les dossiers non cachés.

CD "C:\Documents and Settings\"
FOR /F "tokens=*" %%A IN (folders.txt) DO (
 ATTRIB +H "%%A" /S /D
)
FOR /F "USEBACKQ tokens=*" %%F IN (`DIR /B /A:-HD "C:\Documents and Settings\"`) DO (
 RMDIR /S /Q %%A
)
FOR /F "tokens=*" %%A IN (folders.txt) DO (
 ATTRIB -H "%%A" /S /D
)

3voto

Gilles Arcas Points 2641

Une solution utilisant robocopy :

cd /d "C:\Documents and Settings"
md tmp
robocopy . tmp /E /MOVE /XD folderToKeep1 folderToKeep2 ...
rd /s /q tmp

1voto

Arun Points 1853
rem le dernier caractère d'espace est délibéré
set yourKeepList="abc def "
for /f %%f in ('dir /b/ad "C:\Documents and Settings"') do (
    (echo %yourKeepList% | findstr /v /i "%%f " 1>nul) && rd /q/s %%f
)

Prograide.com

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.

Powered by:

X