0

运行此命令时出现错误:

for /f "delims=|" %f in ('dir /b y:\db\b') do "Y:\robocopy.exe" "y:\db\b\%f\" "y:\db\a\%f\Certificates and deliverables\" /e

"Y:\robocopy.exe" "y:\db\b\a 001\" "y:\db\a\a 001\Certificates and deliverables\" /e

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP010
-------------------------------------------------------------------------------

  Started : Tue Mar 15 14:06:41 2011

   Source : y:\db\b\a 001" y:\db\a\a\
     Dest : y:\db\b\001\Certificates\

    Files : and
            deliverables"

  Options : /S /E /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

2011/03/15 14:06:41 ERROR 123 (0x0000007B) Accessing Source Directory y:\db\b\a 001" y:\db\a\a\
The filename, directory name, or volume label syntax is incorrect.

我似乎无法让它工作,请帮助。

4

2 回答 2

0

解析命令行时,某些命令会被\"视为转义的".

你应该加倍你的反斜杠。

另请参阅有关 MSVCRT 的此参考(依赖项步行者显示 robocopy 使用 MSVCRT)。

让我建议:

for /f "delims=|" %f in ('dir /b y:\db\b') do "Y:\robocopy.exe" "y:\db\b\%f\\" "y:\db\a\%f\Certificates and deliverables\" /e
于 2011-03-15T14:21:14.707 回答
0

您的问题是由于反斜杠前面的双引号被解释为转义的双引号......有时。

请参阅 Raymond Chen 的这篇文章:CommandLineToArgvW 对引号和反斜杠的奇怪处理是怎么回事

于 2011-03-15T14:25:34.837 回答