循环命令行 returns 缺少最后一个子目录的路径

Command Line For Loop returns path that is missing last subdirectory

我正在尝试使用 For 循环以递归方式提取具有多个级别的文件夹中的所有 zip 文件,甚至是 zip 中的 zip。当我 运行 它时,我收到一条错误消息,因为最后一个子目录是空白的,所以它看起来像 C:\Users\JohnSmith\Desktop\testing\\ 并说它无法创建输出目录。我以为我早些时候已经开始工作了,但我想我错过了一些东西。感谢您提供的所有帮助!

这就是我 运行宁:

FOR /R "C:\Users\JohnSmith\Desktop\testing\" %I IN (*.zip) DO (7z x "%I" -aou -o\"%~dpI\" && del \"%~fI\")

我想所有 \" 都是您命令中转义序列的残余,就好像它会从另一个程序中调用一样。在纯 cmd.

中没有这样的需要(甚至有害)

根据 7-zip Command Line Version User's Guide 使用 -o"%~dpI"(删除反斜杠);在del "%~fI"中做同样的事情如下

FOR /R "C:\Users\JohnSmith\Desktop\testing\" %I IN (*.zip) DO (7z x "%I" -aou -o"%~dpI" && del "%~fI")