【问题标题】:Wildcards and the MOVE command in a batch file - Wildcard not recognised as such批处理文件中的通配符和 MOVE 命令 - 通配符无法识别
【发布时间】:2013-09-20 19:07:54
【问题描述】:

我有一个批处理文件,其中包含以下行:

移动d:\cdr\C0*.%yyyy%-%mm%-%dd%*.csv d:\CDRArchive\%yyyy%%mm%\

其中变量 yyyy mm 和 dd 用于给定日期的相应部分。当我运行它时,批处理文件会正确解析变量,但我无法识别通配符 *,所以我得到以下行:

> 移动 d:\cdr\archive\C0*.2013-09-08*.csv d:\CDRArchive\201309\
存在重复的文件名,或文件 找不到。

非常感谢任何帮助。

【问题讨论】:

    标签: batch-file syntax wildcard


    【解决方案1】:

    一旦创建了目标文件夹,它就可以正常工作。请注意,您提供的错误消息表明文件规范错误或文件夹错误。当它们正确时您收到的错误消息如下所示。 (在 Windows 8 中测试)

    d:\>move d:\cdr\C0*.2000-10-01*.csv d:\CDRArchive\200010\
    Cannot move multiple files to a single file.
    
    d:\>md d:\CDRArchive\200010\
    
    d:\>move d:\cdr\C0*.2000-10-01*.csv d:\CDRArchive\200010\
    d:\cdr\C0abc.2000-10-01.aaa.csv
    d:\cdr\C0abc.2000-10-01.bbb.csv
    d:\cdr\C0abc.2000-10-01.ccc.csv
            3 file(s) moved.
    

    【讨论】:

    • 现在再试一次,但使用类似 SET yyyy=2010, SET mm=10, SET DD=01 的东西,然后使用变量代替移动命令中的日期。我有一种行不通的感觉。
    • 它绝对适用于普通变量——无需测试。它可能不起作用的一个原因是,如果您在循环内设置变量,并且不使用延迟扩展来使用循环内的变量。运行批处理文件后目标目录是否存在?
    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 2022-01-11
    • 2017-01-21
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多