Batch compactando vários arquivos em um único archive

0

Eu tenho o seguinte script em lotes de arrastar e soltar para criar arquivos zip

@echo off
if [%1]==[] goto :eof
:loop
"C:\Program Files-Zipz.exe" a -tzip "%~1.zip" "%~1"
shift
if not [%1]==[] goto loop

Isso cria arquivos separados para vários diretórios arrastados para o lote. Agora quero fazer o mesmo, mas crie um arquivo único no final. Como faço isso?

    
por roryok 18.02.2015 / 12:20

1 resposta

0

Suponha que 7z.exe (ou 7za.exe supostamente) seja uma versão de linha de comando de 7-zip , um programa executável usado para compactar, extrair e atualizar arquivos por meio da linha de comando e suponha o mesmo uso:

7za.exe
Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...] [<@listfiles...>]

Em seguida, o próximo script pode funcionar com %* . Em um script em lote, %* refere-se a todos os argumentos (até 255)

@echo off
set "archivename=any_name_of_your_choice"

rem insert here some code to figure out a value for %archivename% variable

set /p "archivename=archive name, Enter for default %archivename%: "

"C:\Program Files-Zipz.exe" a -tzip "%archivename%.zip" %*
    
por 19.02.2015 / 11:17