通配符和批处理中的MOVE命令 - 通配符未被识别为通配符

5

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

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

其中yyyy、mm和dd等变量代表给定日期的各个部分。当我运行此批处理文件时,它会正确解析变量,但它无法识别通配符*,因此我得到以下行:

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

非常感谢您的任何帮助。

1个回答

6

一旦目标文件夹创建成功,它就可以正常工作。请注意,您提供的错误消息显示文件规范或文件夹错误。当它们正确时,您获得的错误消息如下所示。(在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 这样的东西,然后在移动命令中使用这些变量代替日期。我有一种感觉这不会起作用。 - IJBurgess
它绝对可以与普通变量一起使用 - 没有必要测试它。 但是可能不起作用的原因是,如果您在循环内设置变量,并且不使用延迟扩展来使用循环内的变量。执行批处理文件后,目标目录是否存在日期? - foxidrive

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接