Eu notei o uso de ^&
em:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Eu estou querendo saber o que isso faz?
Eu notei o uso de ^&
em:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Eu estou querendo saber o que isso faz?
Respostas:
O ^
símbolo é o caractere de escape * no Cmd.exe:
A adição do caractere de escape antes de um símbolo de comando permite que ele seja tratado como texto comum.
Ao canalizar ou redirecionar qualquer um desses caracteres, você deve prefixar o caractere de escape: & \ <> ^ |
No entanto, não tem efeito e é realmente desnecessário em seu comando. Parece que você deseja que o comando SE seja executado após a conclusão do comando RoboCopy. Portanto, você deseja &
que ele seja analisado como o comando "separador de comandos", que instrui o Cmd.exe a tratar sua instrução IF como um segundo comando que deve ser executado após a execução do RoboCopy. Como resultado, este comando é equivalente ao que você está usando:
(robocopy c:\dirA c:\dirB *.*) & IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
* Se ^
for o último caractere de um comando, ele será interpretado como o caractere de continuação do comando .
^
para esse fim, ele deve ser o último caractere no comando.