I've noticed the usage of
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
I am wondering what does it do?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
^ symbol is the escape character* in Cmd.exe:
Adding the escape character before a command symbol allows it to be treated as ordinary text.
When piping or redirecting any of these characters you should prefix with the escape character: & \ < > ^ |
However, it has no effect and is actually unnecessary in your command. It appears you want the IF command to be run after the RoboCopy command completes. Therefore you want the
& to be parsed as the "command separator" command, which tells Cmd.exe to treat your IF statement as a second command that should be executed after running RoboCopy. As a result, this command is equivalent to the one you're using:
(robocopy c:\dirA c:\dirB *.*) & IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
^ is the last character in a command, then it is interpreted as the command continuation character.