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

あなたの問題は、バックスラッシュが前にある二重引用符がエスケープされた二重引用符として解釈されるという事実によって引き起こされます...時々。

Raymond Chen によるこの記事を参照してください: CommandLineToArgvW による引用符とバックスラッシュの奇妙な扱いについて

于 2011-03-15T14:25:34.837 に答える
0

コマンド ラインを解析するとき、一部のコマンド\"はエスケープされた として扱われます"

バックスラッシュを 2 倍にする必要があります。

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 に答える