Ho notato l'uso di ^&
in:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Mi chiedo che cosa fa?
Ho notato l'uso di ^&
in:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Mi chiedo che cosa fa?
Risposte:
Il ^
simbolo è il carattere di escape * in Cmd.exe:
L'aggiunta del carattere di escape prima di un simbolo di comando consente di trattarlo come un normale testo.
Quando esegui il piping o il reindirizzamento di uno di questi caratteri, devi aggiungere il prefisso: & \ <> ^ |
Tuttavia, non ha alcun effetto ed è effettivamente inutile nel tuo comando. Sembra che tu voglia eseguire il comando IF dopo il completamento del comando RoboCopy. Pertanto si desidera &
analizzare il comando come "comando di separazione dei comandi", che indica a Cmd.exe di trattare l'istruzione IF come un secondo comando che deve essere eseguito dopo l'esecuzione di RoboCopy. Di conseguenza, questo comando è equivalente a quello che stai usando:
(robocopy c:\dirA c:\dirB *.*) & IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
* Se ^
è l'ultimo carattere di un comando, allora viene interpretato come il carattere di continuazione del comando .
^
a tale scopo deve essere l' ultimo carattere del comando.