1
@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 /?” 供使用。这里可能是什么问题?谢谢

4

3 回答 3

2

问题出在 /C 参数上。您没有正确关闭双引号。

尝试

Forfiles /P "%Sourcedir%" /D +0 /C "cmd /c copy @path %Targetdir%" >> %LOG%
于 2013-11-08T20:43:10.347 回答
2

PA 的答案和 aphoria 的答案在大多数情况下都有效。但如果Targetdir包含标记分隔符(如<space>, =,;等)或有毒字符(如&. 在这种情况下需要报价。Aphoria 的答案看起来可能有效,但额外的引号导致Targetdir在第一次解析过程中没有被引用。

解决方案是使用 FORFILES0xNN表示法来表示内部引号。

Forfiles /P "%Sourcedir%" /D +0 /C "cmd /c copy @path 0x22%Targetdir%0x22" >> %LOG%
于 2013-11-09T06:50:54.383 回答
1

您在命令末尾缺少引号

尝试这个:

Forfiles /P "%Sourcedir%" /D +0 /C "cmd /c copy @path "%Targetdir%"" >> %LOG%

""请注意>>.

于 2013-11-08T20:39:28.453 回答