Добавление escape-символа перед символом команды позволяет обрабатывать его как обычный текст.
При передаче или перенаправлении любого из этих символов вы должны использовать префикс с escape-символом: & \ <> ^ |
Однако это не имеет никакого эффекта и фактически не нужно в вашей команде. Похоже, вы хотите, чтобы команда IF выполнялась после завершения команды RoboCopy. Следовательно, вы хотите, &чтобы синтаксический анализировался как команда «разделитель команд», которая указывает Cmd.exe обрабатывать ваш оператор IF как вторую команду, которая должна быть выполнена после запуска RoboCopy. В результате эта команда эквивалентна той, которую вы используете:
(robocopy c:\dirA c:\dirB *.*) & IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Ответы:
^
Символ экранирующий символ * в Cmd.exe:Источник
Однако это не имеет никакого эффекта и фактически не нужно в вашей команде. Похоже, вы хотите, чтобы команда IF выполнялась после завершения команды RoboCopy. Следовательно, вы хотите,
&
чтобы синтаксический анализировался как команда «разделитель команд», которая указывает Cmd.exe обрабатывать ваш оператор IF как вторую команду, которая должна быть выполнена после запуска RoboCopy. В результате эта команда эквивалентна той, которую вы используете:* Если
^
последний символ в команде, то он интерпретируется как символ продолжения команды .Дополнительная информация:
источник
^
для этой цели это должен быть последний символ в команде.