将多个文件批量压缩成一个档案

将多个文件批量压缩成一个档案

我有以下用于创建 zip 文件的拖放批处理脚本

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

这将为拖到批处理中的一堆目录创建单独的文件。我现在想做同样的事情,但创建一个单一档案最后。我该怎么做?

答案1

假设7z.exe(或7za.exe据称)是的命令行版本7-zip,是一个用于通过命令行压缩、提取和更新文件的可执行程序,并假设相同的用法:

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

然后下一个脚本可以与 一起工作%*。在批处理脚本中, %*引用所有参数(最多 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\7-Zip\7z.exe" a -tzip "%archivename%.zip" %*

相关内容