I've noticed the usage of ^& in:

(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0

I am wondering what does it do?


The ^ 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 

*If ^ is the last character in a command, then it is interpreted as the command continuation character.

More Information:

  • 1
    @Biswapriyo That's also true, to use ^ for that purpose it must be the last character in the command. – I say Reinstate Monica Jan 7 '19 at 18:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.