如何使用 7 zip 在单个命令中将多个文件传递给 zip?

如何使用 7 zip 在单个命令中将多个文件传递给 zip?

我有一个文件夹,其中包含下面提到的文件:

destiny.txt
destiny1.txt
destiny2.txt
destiny3.txt
destiny4.txt
destiny5.txt
destiny6.txt
destiny7.txt

其中destiny1.txt、destiny4.txt、destiny6.txt来自batch1。

我正在使用7zip压缩文件。

我可以一步完成这 3 个文件来创建DestinyTest.zip吗?

是否可以?

答案1

我可以一步完成这 3 个文件来创建DestinyTest.zip吗?

您可以使用 7zip 的命令行版本7z

从命令行:

7z a -tzip DestinyTest.zip destiny1.txt destiny4.txt destiny6.txt
  • a- 将文件添加到档案。
  • -tzip- 指定档案的类型(我们正在创建一个zip档案)。

进一步阅读

答案2

如果你有一个列出要制作 zip 文件的文件,例如

创建要存档的文件列表,每行一个。这是一个 @-list,从 DOS 时代开始,许多程序都会对每一行执行此操作。

您可以使用创建这样的文件dir /b destin*.* > zipme.lst,然后在 ascii 编辑器(记事本或编辑)中删除行。

type zipme.lst destiny1.txt destiny4.txt destiny6.txt 7za a -tzip DestinyTest.zip @zipme.lst

这将找到 zipme.lst,并添加其中列出的所有文件。它可以比命令行更长,并且您可以对其进行一些控制。

答案3

我遇到了类似的问题,想用批处理脚本。操作方法如下:

在下面的示例中,脚本查找所有以“cell_cfg”和“slave_cfg”开头的 .csv 文件,收集它们,然后将它们压缩到一个名为“cfg.7z”的文件中,该文件存储在名为“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%

(调整 7z.exe 的路径和文件/文件夹名称。如果您想要 .zip 而不是 .7z,请重命名以下行:

set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z

进入

set filenames="C:\Program Files\7-Zip\7z.exe" a -tzip "zip/cfg.zip

我将其保存为“zip_cfg.bat”,并将其放在包含我想要压缩的文件的文件夹中。然后我可以在命令行中调用它:首先,导航到包含文件的文件夹,然后只需调用:

zip_cfg.bat

如果您想压缩文件夹(“*”)中的所有文件,则“FIND /I“zip_cfg.bat”1>NUL”部分将阻止脚本压缩批处理文件本身。

希望这对某人有帮助...:)

相关内容