J'ai un répertoire racine avec de nombreux sous-répertoires différents contenant des fichiers .zip (exemple ci-dessous). J'ai besoin d'un lot / .cmd / etc pour décompresser les fichiers zip dans leurs sous-répertoires et renommer le fichier extrait (un fichier .tif) de la même manière que le fichier zip. J'ai fait des recherches et trouvé le code suivant, mais cela ne fonctionnera que s'il est placé dans les sous-répertoires. Pas le dossier parent. Comment faire en sorte que ce code fonctionne dans tous les sous-répertoires, comme expliqué?
Exemple de structure de fichier
C: \ This \ Is \ Random \ Parent \ Sub \ Sub \ 1234.zip {ABCD.tif}
Ce que je recherche C: \ This \ Is \ Random \ Parent \ Sub \ Sub \ 1234.tif
set work=%temp%\%random%%random%%random%%random%
mkdir "%work%" || goto :eof
for %%A in ('dir /b /s *.zip *.rar') do (
"%ProgramFiles%\7-Zip\7z.exe" e -o"%work%" "%%~A"
for %%F in ("%work%\*") do move "%%~F" "%%~nA%%~xF"
)
rmdir "%work%"