J'ai remarqué l'utilisation de ^&
dans:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Je me demande ce que ça fait?
J'ai remarqué l'utilisation de ^&
dans:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Je me demande ce que ça fait?
Réponses:
Le ^
symbole est le caractère d'échappement * dans Cmd.exe:
L'ajout du caractère d'échappement avant un symbole de commande permet de le traiter comme du texte ordinaire.
Lorsque vous redirigez ou redirigez l'un de ces caractères, vous devez préfixer le caractère d'échappement: & \ <> ^ |
Cependant, cela n'a aucun effet et n'est en fait pas nécessaire dans votre commande. Il semble que vous souhaitiez que la commande IF soit exécutée une fois la commande RoboCopy terminée. Par conséquent, vous souhaitez que le &
soit analysé comme la commande "séparateur de commandes", qui indique à Cmd.exe de traiter votre instruction IF comme une deuxième commande qui doit être exécutée après l'exécution de RoboCopy. Par conséquent, cette commande est équivalente à celle que vous utilisez:
(robocopy c:\dirA c:\dirB *.*) & IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
* Si ^
est le dernier caractère d'une commande, il est alors interprété comme le caractère de continuation de la commande .
^
à cette fin, il doit s'agir du dernier caractère de la commande.