【问题标题】:Move multiple files with various extensions by batch批量移动多个具有不同扩展名的文件
【发布时间】:2020-06-11 03:42:52
【问题描述】:

我打算将各种类型的通配符文件名移动到一个文件夹中

我尝试了以下方法,但它们都不起作用

移动 D:\Users\name\Desktop*.pptx,.xls,.pdf D:\Users\name\Desktop\documents

移动 D:\Users\name\Desktop*.{pptx,xls,pdf} D:\Users\name\Desktop\documents

移动 D:\Users\name\Desktop*.pptx *.xls *.pdf D:\Users\name\Desktop\documents

任何帮助将不胜感激。

【问题讨论】:

    标签: windows batch-file wildcard


    【解决方案1】:

    move 不支持同时使用多个通配符。你可以:

    • 拨打move 3 次,每个分机一次:
      move D:\Users\name\Desktop\*.pptx D:\Users\name\Desktop\documents
      move D:\Users\name\Desktop\*.xls  D:\Users\name\Desktop\documents
      move D:\Users\name\Desktop\*.pdf  D:\Users\name\Desktop\documents
    
    • 或者,将所有内容放在一行中:
      for %X in (pptx xls pdf) do @move D:\users\name\desktop\*.%X D:\users\name\desktop\documents
    


    [ EDIT ] 正如@Squashman 的评论所指出的,以上是在命令行中使用的正确语法。在批处理文件中使用for 时,%X 变量名中的% 必须加倍,例如for %%X in ...

    【讨论】:

    • 由于 O/P 用batch-file 标记了这个问题,您可能需要更改FOR 代码,以便在batch-file 中使用变量时使用所需的语法。
    • 在 %X 中再添加一个 % 后,它可以完美运行。谢谢。
    【解决方案2】:

    ROBOCOPY 您还有一个选择。您可以使用/MOV 选项在文件复制后将其删除。一个好处是ROBOCOPY 将接受多个通配符。

    robocopy "D:\Users\name\Desktop" "D:\Users\name\Desktop\documents" *.pptx *.pdf /MOV
    

    【讨论】:

      【解决方案3】:

      逗号很好,但您需要通过路径变量或显式提供目标的完整路径。

      【讨论】:

        猜你喜欢
        • 2012-11-13
        • 2013-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        相关资源
        最近更新 更多