为什么文件不能被发现复制

我正在写一个批处理脚本,将文件从一个文件夹复制到C:\驱动器:

@ECHO ON COPY C:\RANDOMFILES\Weekly Reprort_Hew*.xls C:\Weekly Reprort_Hew???????????.xls 

RANDOMFILES文件夹中的文件名是: Weekly Reprort_Hew, 6-29-2014 10-30-00 PM-642.xls (date和时间以及结尾的数字总是会改变的,所以我在复制的文件名中使用了*在脚本中)

当我运行批处理脚本时,我收到以下消息:

 c:\RANDOMFILES>COPY C:\RANDOMFILES\Weekly Reprort_Hewlett*.xls C:\Weekly Reprort _Hewlett???????????.xls The system cannot find the file specified. 

我该如何解决这个问题?

你需要双引号来处理空格等。双重检查拼写了。

 @ECHO ON COPY "C:\RANDOMFILES\Weekly Reprort_Hew*.xls" "C:\Weekly Reprort_Hew???????????.xls" 

不知道为什么它不工作 – 是隐藏的? 也许名字中的空格?

以下将工作:

 FOR %%I in (C:\RANDOMFILES\Weekly Reprort_Hew*.xls) DO COPY "%%I" C:\ 

目标文件名是不必要的; 如果没有特别说明,只要目的地不同,它将保持不变。 这可能是为什么普通的COPY命令不起作用。

也:

“只有当通配符不出现在文件名的末尾时,问号通配符才会匹配一个字符,这是一个不太为人所知的事实。”来自http://www.thefriendlycoder.com/2011 / 11/24 /批处理文件-疑难杂症-问号通配符/