Abaixo está um método que eu usei no passado para o mesmo tipo de tarefa que você descreveu, que eu tirei de um dos meus " pacote de scripts ". Eu usei o aplicativo gratuito 7-Zip para essa tarefa com 100% de sucesso.
Essentially this . . .
- Uses the 7-Zip (7za) app to extract zip file(s) contents in one location to another
- Then it does an xcopy of extracted ZIP files within the initial extracted files and copies those to a working directory
- Then it deletes ZIP files from source, and extracts the other zip files from working directory and loops until complete
Observação: o arquivo executável 7za pode precisar ser copiado para a pasta /system32
ou talvez seja necessário definir o caminho que ele reside na variável de ambiente PATH
.
Script em lote
Você precisará definir os valores das variáveis de origem, destino e diretório de trabalho de acordo com seu ambiente e necessidades, e o restante deve funcionar conforme o esperado.
@ECHO ON
SET sourcedir=C:\Test\Source
SET destdir=C:\Test\Dest
SET workdir=C:\Test\WorkTemp
:unzip
7za -Y e "%sourcedir%" -o"%destdir%" -r
DEL /Q /F "%workdir%\*zip
XCOPY /Y /F %destdir%\*.zip "%workdir%"
DEL /Q /F %destdir%\*.zip
DIR "%workdir%\*.zip" /A-D
IF ERRORLEVEL 1 GOTO :done
:unzip2
7za -Y e "%workdir%" -o"%destdir%" -r
DEL /Q /F "%workdir%\*.zip"
XCOPY /Y /F %destdir%\*.zip "%workdir%"
DEL /Q /F %destdir%\*.zip
DIR "%workdir%\*.zip" /A-D
IF ERRORLEVEL 1 GOTO :done
GOTO :unzip2
:done
GOTO :EOF