@ECHO OFF
Set LOG="C:\Temp\Copy.log"
::########################
:: Begin copying
::########################
Set Sourcedir="c:\data\PRODDB\dir"
Set Targetdir="C:\test"
Echo %date% %time%: "Copying from %sourcedir% to %Targetdir%" >> %LOG%
Forfiles /P "%Sourcedir%" /D +0 /C "cmd /c copy @path "%Targetdir%" >> %LOG%
当我执行上面的脚本时,我收到以下错误错误:无效的参数/选项 - '>>'。 输入" FORFILES /?"用法。这可能是什么问题?感谢
答案 0 :(得分:2)
问题出在/ C参数上。您没有正确关闭双引号。
试
Forfiles /P "%Sourcedir%" /D +0 /C "cmd /c copy @path %Targetdir%" >> %LOG%
答案 1 :(得分:1)
你在命令的末尾错过了一个引用
试试这个:
Forfiles /P "%Sourcedir%" /D +0 /C "cmd /c copy @path "%Targetdir%"" >> %LOG%
请注意""
之前的>>
。
答案 2 :(得分:1)
在大多数情况下,PA的答案和烦恼的答案都适用。但如果Targetdir
包含<space>
,=
,;
等令牌分隔符或&
等有毒字符,则会失败。在这种情况下需要引用。 Aphoria的答案看起来可能有效,但额外的引号会导致Targetdir
在第一个解析过程中不被引用。
解决方案是使用FORFILES 0xNN
表示法来表示内部引号。
Forfiles /P "%Sourcedir%" /D +0 /C "cmd /c copy @path 0x22%Targetdir%0x22" >> %LOG%