批处理文件参数中的百分号(% 和 %%)是什么意思?

Jim*_*ger 11 batch command-line batch-file 7-zip

我想我错过了一些东西,因为我似乎无法找到这意味着什么。

例子:

for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Run Code Online (Sandbox Code Playgroud)

该行应该使用 的命令行版本7zip来压缩单个文件夹,但我对%%A这种情况下的含义感到困惑。

Sco*_*ain 12

for命令需要一个占位符,以便您可以传递变量以供稍后在查询中使用,我们告诉它使用占位符%A,您看到的代码使用的原因%%A是因为在批处理文件中(我假设这是您找到它的地方)%具有特殊意义,因此您必须执行两次,%%以便将其转换为单个%以传递给for命令

要真正分解命令正在执行的操作,命令有两个部分:

 for /D %%A in (*) do .....
Run Code Online (Sandbox Code Playgroud)

这部分说的是对当前文件夹中的每个文件夹执行以下命令替换%%A为当前处理文件夹的名称。

..... "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Run Code Online (Sandbox Code Playgroud)

这部分说的是执行命令"\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"并将两者替换为%%A我们正在处理的当前记录。