7zip 递归解压缩在 CMD 中运行良好,但在批处理中不起作用

7zip 递归解压缩在 CMD 中运行良好,但在批处理中不起作用

我使用下面的命令从源文件夹(D:\cnosftp\)递归解压缩并将提取的文件放在同一个子文件夹中。

FOR /R "D:\cnosftp\" %I IN (*.gz) DO "C:\Program Files\7-Zip\7z.exe" x "%I" -aoa -o"%~dpI"

在 CMD 中运行时,此命令运行良好 - 但当将相同命令放入批处理文件中并运行时 - 它会触发但会立即关闭,不会执行任何操作。知道我在这里做什么吗?或者有人可以告诉我如何将其包装在批处理文件中。

答案1

相反,尝试运行:

FOR /R "D:\cnosftp\" %I IN (*.gz) DO echo "C:\Program Files\7-Zip\7z.exe" x "%I" -aoa -o"%~dpI"

确保输出符合您的预期。

提示:可能不行。根据需要将 % 替换为 %%。(如果两个 % 不起作用,请尝试三个或四个,但我认为两个可能就足够了。)

可能的问题是,FOR 命令在批处理文件中运行时可能需要额外的 %。使用 echo 命令输出您实际运行的命令,通常有助于确定哪些变量按您希望/需要的方式扩展,以及哪些变量需要添加 %s。

相关内容