por para con comprimir comandos bat archivos windows batch-file cmd unzip

windows - comandos - bat para comprimir archivos con 7zip



Script por lotes de Windows para descomprimir archivos en un directorio (4)

Quiero descomprimir todos los archivos en un directorio determinado y conservar los nombres de las carpetas cuando se descomprimen.

La siguiente secuencia de comandos por lotes no funciona del todo. Simplemente arroja un montón de archivos sin ponerlos en una carpeta y ni siquiera termina.

¿Qué pasa aquí?

for /F %%I IN (''dir /b /s *.zip'') DO ( "C:/Program Files (x86)/7-Zip/7z.exe" x -y -o"%%~dpI" "%%I" )


¿Es posible que algunos de tus archivos zip tengan un espacio en el nombre? Si es así, su primera línea debería ser:

for /F "usebackq" %%I IN (`dir /b /s "*.zip"`) DO (

Tenga en cuenta el uso de `en lugar de ''Ver FOR /?


Prueba esto.

@echo off for /F "delims=" %%I IN ('' dir /b /s /a-d *.zip '') DO ( "C:/Program Files (x86)/7-Zip/7z.exe" x -y -o"%%~dpI/%%~nI" "%%I" ) pause


Prueba esto:

for /R "C:/root/folder" %%I in ("*.zip") do ( "%ProgramFiles(x86)%/7-Zip/7z.exe" x -y -o"%%~dpI" "%%~fI" )

o (si desea extraer los archivos en una carpeta nombrada después del archivo Zip):

for /R "C:/root/folder" %%I in ("*.zip") do ( "%ProgramFiles(x86)%/7-Zip/7z.exe" x -y -o"%%~dpnI" "%%~fI" )


La respuesta de Ansgar anterior fue más o menos perfecta para mí, pero también quise borrar los archivos posteriores si la extracción fue exitosa. Encontré esto y lo incorporé a lo anterior para dar:

for /R "Destination_Folder" %%I in ("*.zip") do ( "%ProgramFiles%/7-Zip/7z.exe" x -y -aos -o"%%~dpI" "%%~fI" "if errorlevel 1 goto :error" del "%%~fI" ":error" )