suppression dossiers avec condition
Bonjour à tous. Je viens vers vous car j'ai un problème de Batch.
Voilà je voudrais écrire un script de suppression. J'ai commencé mais ça beug...
En fait j'ai une arborescence du type (x étant un chiffre):
Test
-xxx
-blabla
-xxx_xxxxxx
-xxx_xxxxxx
-xxx_xxxxxx
-xxx
-xxx_xxxxxx
-xxx_xxxxxx
-xxxx
Donc j'aimerais parcourir Test, parcourir les dossiers "xxx" si à l'intérieur se trouve un dossier xxx_xxxxxx on le garde si il yen a plusieurs on garde le plus récent et on supprime les autres et si il y en a pas on garde ce qui s'y trouve.
J'ai fait un truc du genre mais ça ne fonctionne pas au niveau du echo (qui est un test avant de supprimer) j'ai une erreur la commande n'est pas reconnue
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| echo off
setlocal enabledelayedexpansion
cls
for /f "delims=" %%a in ('dir /AD /B "C:\Users\moi\Desktop\Test\" ^|findstr /i /r "[0-9][0-9][0-9]"') do (
for /f "delims=" %%x in ('dir /OD /AD /B "C:\Users\moi\Desktop\Test\%%a\" ^|findstr /i /r "[0-9]\_"') do set mostRecent=%%x
for /f "delims=" %%i in ('dir /AD /B "C:\Users\moi\Desktop\Test\%%a\" ^|findstr /i /r "[0-9]\_"') do if not %%i == %mostRecent% echo
coucou
rem rmdir C:\Users\moi\Desktop\Test\%%a\%%i /s /q
)
endlocal
pause |
Voilà si quelqu’un pouvait m'aider je lui en serait reconnaissant. Merci.
Cordialement,
Chewby79