15

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?

1

1 Answer 1

21

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: & \ < > ^ |

Source

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
  • 1
    @Biswapriyo That's also true, to use ^ for that purpose it must be the last character in the command. Commented Jan 7, 2019 at 18:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .