【问题标题】:Command Line For Loop returns path that is missing last subdirectory命令行 For Loop 返回缺少最后一个子目录的路径
【发布时间】:2016-01-21 19:17:53
【问题描述】:

我正在尝试使用 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\")

【问题讨论】:

  • 按照sevenzip.osdn.jp/chm/cmdline 使用-o"%~dpI"(删除反斜杠)。在del "%~fI" 中做同样的事情
  • 呃。你是我的英雄。请作为答案发布,以便我接受。

标签: for-loop recursion command-line subdirectory


【解决方案1】:

我猜\" 都是您命令中转义序列的残余,就好像它会从另一个程序中调用一样。在纯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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2015-08-31
    • 2016-11-17
    • 1970-01-01
    • 2019-06-27
    相关资源
    最近更新 更多