我正在编写一个批处理脚本,它将文件从文件夹复制到C:\ drive:
@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
(日期和时间以及最后的数字将始终更改,因此我在脚本中复制的文件名中使用了*
当我运行批处理脚本时,我收到以下消息:
c:\RANDOMFILES>COPY C:\RANDOMFILES\Weekly Reprort_Hewlett*.xls C:\Weekly Reprort
_Hewlett???????????.xls
The system cannot find the file specified.
如何解决问题?
答案 0 :(得分:1)
你需要双引号来处理空格等。仔细检查拼写。
@ECHO ON
COPY "C:\RANDOMFILES\Weekly Reprort_Hew*.xls" "C:\Weekly Reprort_Hew???????????.xls"
答案 1 :(得分:0)
不知道为什么它不起作用 - 它是隐藏的吗?也许是名字中的空格?
以下内容可行:
FOR %%I in (C:\RANDOMFILES\Weekly Reprort_Hew*.xls) DO COPY "%%I" C:\
目标文件名不是必需的;如果没有另行规定,只要目的地不同,它将保持不变。这可能就是普通COPY
命令无法正常工作的原因。
此外:
"一个不太为人所知的事实是,只有当通配符没有出现在文件名末尾时,问号通配符才会匹配一个字符。 "来自http://www.thefriendlycoder.com/2011/11/24/batch-file-gotcha-question-mark-wildcard/