【发布时间】:2020-06-23 09:01:22
【问题描述】:
我想将所有内容压缩到一个文件夹中,所有内容,但要压缩到单独命名的档案中。由于某种原因,互联网上的每个解决方案都只能压缩文件夹,或者根本无法工作。
目前,我有
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a -mx "%%X.zip" "%%X\"
我理解的意思
-
for= 启动循环 -
/d= 我不知道这是什么意思 -
%%X= 我不知道这是什么意思 -
in= 不确定,我认为是当前目录 -
(*)= 我不知道这是什么意思 -
do= 执行"..."中的下一件事 -
"C:\Program Files\7-Zip\7z.exe"= 我想做的事。 -
a= 添加到存档 -
-m9= 最大压缩率 -
"%%X.zip"= 把它做成一个 zip 文件,虽然我还是不知道%%X是什么。 -
"%%X\"= 即使我知道“%%X\”是什么意思,我也不知道为什么会出现在这里。
我发现替换 %%X 会给存档一个名称,所以它似乎复制了目标对象的名称。
所以如果我猜的话,我认为/d 是“目标文件夹”,%%X 是名称。
所以
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a -mx "%%X.zip" "%%X\"
按照我的理解用英语说:对于当前目录中的每个文件夹名称,使用 7z 将其最大压缩成同名的 zip...除了我不知道用什么替换 /d 到使其目标文件而不是文件夹。并且针对特定的扩展程序会更好。
我尝试用谷歌搜索“/d in cmd 是什么意思”、“什么是%%X”等。我似乎在搜索中没有得到正确的结果,我想我太含糊了谷歌。
更新:
for %%i in (*) do "c:\Program Files\7-Zip\7z.exe" a -mx "%%i.zip" "%%i\*.*"
似乎为文件夹中的每个项目制作了一个 zip 文件,但实际上并未向其中添加任何文件。我尝试添加/f,但是当我这样做时它根本不起作用。
此外,我第一次发布此内容时,它已作为 Batch script loop 的副本关闭,这与我的问题几乎无关。是的,我有一个循环,是的,它解决了批处理循环,但是不,它并不能解决我的问题,因为我的问题不在于循环本身。或者如果它确实存在,我完全不知道为什么或如何。所以,请给我解释一下。我确实看到它说%%X 是变量的部分,但这只是意味着我认为 X 可以是我想要的任何东西,并且由于在我的更新中我指出了一个次要问题,我认为我遇到的问题是 7z 而不是 bat 文件。
【问题讨论】:
-
在命令提示符窗口中输入
for /?并阅读输出文本... -
或输入
help for并在同一命令提示符下按回车键。他们中的任何一个都可以为您提供有关for的信息以及它的使用情况。
标签: batch-file cmd archive 7zip