Hola, chicos,
Buenas noches.

En esta publicación rápida, demostraré cómo comprimir directorios y subdirectorios creando 1 archivo zip con todo el contenido o 1 archivo ZIP por directorio, usando el 7 cremalleras, el mejor compresor de archivos en mi opinión, y el indicador de DOS (CMD).

Este pequeño script lo uso mucho en mi vida diaria, principalmente para almacenar los scripts y logs de las solicitudes y proyectos que manejo. Esta semana tuve la necesidad de usar estos scripts nuevamente cuando generé archivos CSV grandes (más de 2 GB por archivo) con diversa información extraída de la base de datos, usando el procedimiento almacenado. stpExporta_Query_Txt, disponible en la publicación SQL Server: cómo exportar datos de bases de datos a archivos de texto (CLR, OLE, BCP).

Para que estos archivos estuvieran disponibles para el solicitante, quería comprimirlos en 1 archivo ZIP por cada archivo generado, pero había 65 archivos CSV, lo que llevaría un poco de tiempo.

La solución a este problema fue utilizar uno de los siguientes scripts, que preparé para 3 tipos de necesidades. En los siguientes ejemplos, utilizaré la siguiente estructura:

Como compactar arquivos diretórios batch cmd
Cómo comprimir archivos de directorios cmd por lotes

Cree 1 archivo ZIP para cada subdirectorio

En este primer ejemplo, demostraré cómo leer todos los directorios de la carpeta actual y crear 1 archivo zip para cada directorio de la carpeta actual. Los subdirectorios formarán parte del archivo Zip creado.

Código fuente:

for /d %X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%X.zip" "%X\"
pause

Tratamiento:

Como compactar arquivos diretórios batch cmd 2
Cómo comprimir archivos y directorios en lote cmd 2

Resultado final:

Como compactar arquivos diretórios batch cmd resultado_2
Cómo comprimir archivos y directorios por lotes cmdresult_2

Crea 1 archivo ZIP con el contenido de los subdirectorios

En este segundo ejemplo, demostraré cómo leer todos los directorios de la carpeta actual y crear 1 archivo zip con ese contenido. Los subdirectorios formarán parte del archivo ZIP creado.
Código fuente:

for /d %X in (*) do "C:\Program Files\7-Zip\7z.exe" a "Arquivo.zip" "%X\"
pause

Tratamiento:

Como compactar arquivos diretórios batch cmd 4
Cómo comprimir archivos y directorios por lotes cmd 4

Resultado final:

Como compactar arquivos diretórios batch cmd resultado_3
Cómo comprimir archivos y directorios por lotes cmdresult_3

Cree 1 archivo ZIP para cada archivo raíz

En este tercer y último ejemplo, demostraré cómo leer los archivos en la carpeta actual y crear 1 archivo zip para archivar. No se consideran directorios y subdirectorios, solo los archivos que se encuentran en la raíz.

Código fuente:

for %X in (*.txt) do "C:\Program Files\7-Zip\7z.exe" a "%X.zip" "%X"
pause

Tratamiento:

Como compactar arquivos diretórios batch cmd 3
Cómo comprimir archivos y directorios por lotes cmd 3

Resultado final:

Como compactar arquivos diretórios batch cmd resultado2
Cómo comprimir archivos y directorios por lotes cmdresult2

¡Y eso es todo, amigos!
¡Espero que esta publicación también te sea útil!

¡Abrazo!

cómo comprimir directorios archivos por lotes a través de la línea de comando comando línea de comando comprimir archivos directorio carpetas shell cmd dos símbolo

cómo comprimir directorios archivos por lotes a través de la línea de comando comando línea de comando comprimir archivos directorio carpetas shell cmd dos símbolo