for files无效的参数/选项 - '>>'

时间:2013-11-08 20:34:04

标签: batch-file

@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 /?"用法。这可能是什么问题?感谢

3 个答案:

答案 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%