Tengo un directorio raíz con muchos subdirectorios diferentes que tienen archivos .zip (ejemplo a continuación). Necesito un lote / .cmd / etc para descomprimir los archivos zip en sus subdirectorios y cambiar el nombre del archivo extraído (a .tif) igual que el archivo zip. Investigué y encontré el siguiente código, sin embargo, esto solo funcionará cuando se coloque en los subdirectorios. No es la carpeta principal. ¿Cómo hago que este código funcione en todos los subdirectorios como se explica?
Estructura de archivo de ejemplo
C: \ This \ Is \ Random \ Parent \ Sub \ Sub \ 1234.zip {ABCD.tif}
Lo que estoy buscando 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%"