2010-11-03 35 views
0

Pourriez-vous s'il vous plaît aidez-moi avec le problème suivant? Très souvent, je dois faire la même tâche qui supprime presque tous les fichiers d'un répertoire - tous les fichiers sauf 2 (disons 1st.file et 2nd.file). J'ai trouvé plusieurs solutions pour effacer tout du répertoire, mais je n'ai aucune idée de comment l'utiliser. Pourriez-vous indiquer où trouver la solution?Windows fichier bat - suppression du répertoire

+0

Je ne comprends pas complètement votre problème. Pourriez-vous donner quelques détails? – Dennis

Répondre

0

Remplacer DONOTDELETE.ME avec votre fichier et que le fichier ne sera pas supprimé.

@echo off 
for /r . %%a in (*.*) do (
    IF NOT "%%~nxa" == "DONOTDELETE.ME" (
     DEL "%%a" ) 
) 

Vous pouvez aussi simplement faire attrib -r aux fichiers en question et enlever le drapeau de lecture seule par la suite comme ceci:

@echo off 
cd \myFiles 
attrib myFiles\DONOTDELETE1.ME +r 
attrib myFiles\DONOTDELETE2.ME +r 
del myFiles\*.* /q /s /a-r 
attrib myFiles\DONOTDELETE1.ME -r 
attrib myFiles\DONOTDELETE2.ME -r 
for /f %%a in ('dir myFiles/ad /b') do echo rd myFiles\%%a /q/s 
+0

Merci, cela fonctionne. – Lormitto

+0

Merci, cela fonctionne. Cordialement – Lormitto

+1

Consdider marquant votre réponse avec la coche sur le site gauche de la réponse. –

0

Quelque chose comme ça pourrait vous aider à démarrer.

@ECHO OFF 
SET RemoveFolder=C:\Temp 

MV %RemoveFolder%\1st.file 1st.file 
MV %RemoveFolder%\2nd.file 2nd.file 
RD /S /Q %RemoveFolder% 
IF NOT EXIST %RemoveFolder% MD %RemoveFolder% 
MV 1st.File %RemoveFolder% 
MV 2nd.File %RemoveFolder% 

SET RemoveFolder= 
0

C'est un peu hackish, mais vous pouvez simplement modifier les attributs de les fichiers que vous ne voulez pas supprimer ... puis excluez tous les fichiers qui ont cet attribut lorsque vous appelez effacer.

Appel du follwing comme ceci: TestDelete.Bat "c: \ DeleteAllFilesExcept", LeaveFile1.txt, LeaveFile2.txt

ATTRIB +H %2 
ATTRIB +H %3 

erase %1 /A-H 

ATTRIB -H %2 
ATTRIB -H %3 

Bien sûr, cela ne fonctionnera pas si vous avez l'intention de supprimer des fichiers cachés à partir du répertoire.