^&
の使用に気づきました:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
それは何をしているのでしょうか?
^
記号はエスケープ文字です* Cmd.exe内:
コマンドシンボルの前にエスケープ文字を追加すると、通常のテキストとして扱うことができます。
これらの文字のいずれかをパイプまたはリダイレクトするときは、エスケープ文字を前に付ける必要があります:&\ <> ^ |
ただし、効果はなく、実際にはコマンドでは不要です。 RoboCopyコマンドの完了後にIFコマンドを実行したいようです。したがって、&
"コマンドセパレータ"コマンドとして解析されます tells Cmd.exe IFステートメントを、RoboCopyの実行後に実行する必要がある2番目のコマンドとして扱います。その結果、このコマンドは、使用しているものと同等です。
(robocopy c:\dirA c:\dirB *.*) & IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
*^
はコマンドの最後の文字であり、 コマンド継続文字 として解釈されます。