我有一个文件夹,其中包含下面提到的文件:
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”部分将阻止脚本压缩批处理文件本身。
希望这对某人有帮助...:)