![¿Cómo pasar varios archivos para comprimir con un solo comando usando 7 zip?](https://rvso.com/image/1457470/%C2%BFC%C3%B3mo%20pasar%20varios%20archivos%20para%20comprimir%20con%20un%20solo%20comando%20usando%207%20zip%3F.png)
Tengo una carpeta que contendrá los archivos mencionados a continuación:
destiny.txt
destiny1.txt
destiny2.txt
destiny3.txt
destiny4.txt
destiny5.txt
destiny6.txt
destiny7.txt
De los cuales destino1.txt, destino4.txt, destino6.txt son del lote1.
Estoy usando 7zip
para comprimir los archivos.
¿Puedo pasar estos 3 archivos en un solo paso para crear DestinyTest.zip
?
¿Es posible?
Respuesta1
¿Puedo pasar estos 3 archivos en un solo paso para crear
DestinyTest.zip
?
Puede utilizar la versión de línea de comando de 7zip, que es 7z
.
Desde una línea de comando:
7z a -tzip DestinyTest.zip destiny1.txt destiny4.txt destiny6.txt
a
- Agrega archivos para archivar.-tzip
- Especifica el tipo de archivo (estamos creando unzip
archivo).
Otras lecturas
Respuesta2
Si tiene un archivo que enumera los archivos para hacer el zip, por ejemplo
cree una lista de archivos para archivar, uno en cada línea. Esta es una lista @, desde la época de DOS, varios programas harán esto para cada línea.
Puede crear un archivo de este tipo con dir /b destin*.* > zipme.lst
y luego eliminar líneas en un editor ascii (bloc de notas o editar).
type zipme.lst destiny1.txt destiny4.txt destiny6.txt 7za a -tzip DestinyTest.zip @zipme.lst
Esto encontrará zipme.lst y agregará todos los archivos enumerados en él. Puede ser más largo que la línea de comandos y usted tiene cierto control sobre ella.
Respuesta3
Tuve un problema similar y quería hacerlo con unsecuencia de comandos por lotes. Aquí es cómo:
En el siguiente ejemplo, el script busca todos los archivos .csv que comienzan con "cell_cfg" y "slave_cfg", los recopila y los comprime en un archivo llamado 'cfg.7z' almacenado en un subdirectorio llamado 'zip':
@ECHO OFF
setlocal enableDelayedExpansion
mkdir zip
ECHO collecting filenames...
set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z
FOR %%i IN (cell_cfg*.csv) DO (
ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
SET filenames=!filenames!" "%%i
)
)
FOR %%i IN (slave_cfg*.csv) DO (
ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
SET filenames=!filenames!" "%%i
)
)
set filenames=%filenames%"
%filenames%
(Ajuste la ruta de su 7z.exe y los nombres de archivos/carpetas. Si desea .zip en lugar de .7z, cambie el nombre de las líneas:
set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z
en
set filenames="C:\Program Files\7-Zip\7z.exe" a -tzip "zip/cfg.zip
)
Lo guardé como 'zip_cfg.bat' y lo coloqué en la carpeta con los archivos que quiero comprimir. Luego puedo llamarlo en la línea de comando: primero, navego hasta la carpeta con los archivos, luego simplemente llame:
zip_cfg.bat
En caso de que desee comprimir todos los archivos en la carpeta ("*"), la parte 'FIND /I "zip_cfg.bat" 1>NUL' impide que el script comprima el archivo por lotes.
Espero que esto ayude a alguien... :)