Batch file 制作一个批处理文件,将文件夹的内容压缩为单独的拉链

Batch file 制作一个批处理文件,将文件夹的内容压缩为单独的拉链,batch-file,cmd,Batch File,Cmd,我需要一个批处理文件来将当前目录的内容压缩到单独的zip文件中(每个文件都有自己的zip文件)。我有兴趣学习更多关于制作批处理文件的知识,因此,如果能帮助分解脚本的含义,我将不胜感激。下面是当前目录中的一个批量压缩子目录,我本来打算编辑它来压缩目录中的单个文件,但我真的不知道如何压缩,也找不到参考表或任何东西。因此,如果你有一个类似的链接,这将是伟大的 for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\"

我需要一个批处理文件来将当前目录的内容压缩到单独的zip文件中(每个文件都有自己的zip文件)。我有兴趣学习更多关于制作批处理文件的知识,因此,如果能帮助分解脚本的含义,我将不胜感激。下面是当前目录中的一个批量压缩子目录,我本来打算编辑它来压缩目录中的单个文件,但我真的不知道如何压缩,也找不到参考表或任何东西。因此,如果你有一个类似的链接,这将是伟大的

for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\"
我想我在这里理解的是: “for/d”将在目录中循环批处理 “in(*)正在指定当前目录 “do“executable location”正在指定进程 “a”%%X.zip”正在指定文件类型? 我真的不明白“%%X”是什么


提前谢谢。

如果要将压缩子文件夹更改为压缩文件,只需删除
/d
,然后它将查找文件而不是目录

for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X"
回答您关于
%%X是什么的问题:这是变量。当您使用for进入循环时,您需要一些变量来表示正在循环的内容

在循环过程中,
%%X
表示您正在处理的任何文件。 因此,如果第一个文件是
File1.txt
,那么第一次通过循环时,
%%X
将等于
File1.txt

因此,命令应该是:
“C:\Program Files\7-Zip\7z.exe”a“File1.txt.Zip”“File1.txt”
如果我回忆起7-zip参数,您是说将
File.txt
添加到名为
File1.txt.zip
的zip文件中。下次通过循环时,
%%X
表示下一个文件名


顺便说一句,如果您在CLI中运行此命令('命令提示符'基本上),那么对于批处理文件,您将使用一个%。对于批处理文件,您必须使用两个(%)。

for/d
正在迭代当前工作目录中的所有文件夹名称。它将目录名分配给指定的标记
%%X
。打开命令提示符并键入:
FOR/?
以阅读
FOR
命令的帮助文件。