| Objet : | Branchement sur une ligne spécifiée dans le fichier batch courant |
| Format : | GOTO [/I] label |
| label | L'étiquette du fichier de traitement par lots vers laquelle passer. |
Utilisation :
GOTO ne peut être utilisé que dans les fichiers batch.
Après une commande GOTO dans un fichier batch, la prochaine ligne à être exécutée sera celle qui suit immédiatement l'étiquette. L'étiquette doit commencer par deux points [:] et apparaître sur une ligne seule ; elle ne peut pas être incluse dans un groupe de commandes. Les deux-points sont obligatoires sur la ligne où l 'étiquette est définie, mais ne le sont pas dans la commande GOTO elle-même. Les différences de majuscules et de minuscules sont ignorées lors de la comparaison des étiquettes.
Ce fragment de fichier batch vérifie l'existence du fichier CONFIG.SYS. Si le fichier existe, le fichier batch passe à C_EXISTS et copie tous les fichiers du répertoire actuel dans le répertoire racine sur A :. Dans le cas contraire, il affiche un message d'erreur et quitte le système.
if exist config.sys goto C_EXISTS
echo CONFIG.SYS doesn't exist - quitting.
quit
:C_EXISTS
copy * a:\
GOTO commence sa recherche de l'étiquette sur la ligne du fichier batch qui suit immédiatement la commande GOTO. Si l'étiquette n'est pas trouvée entre cette position et la fin du fichier, GOTO recommence la recherche au début du fichier. Si l' étiquette n'est toujours pas trouvée, le fichier batch se termine avec le message d'erreur "Etiquette non trouvée".
Pour éviter les erreurs dans le traitement des instructions et des boucles imbriquées, GOTO annule toutes les instructions IFF actives et les boucles DO / ENDDO, à moins que vous n'utilisiez /I. Cela signifie qu'un GOTO normal (sans /I) ne peut pas passer à une étiquette située entre un IFF et l'ENDIFF correspondant ou entre un DO et l'ENDDO correspondant.
Pour des raisons de compatibilité avec CMD, la commande
GOTO :EOF
met fin au traitement du fichier batch en cours si l'étiquette :EOF n'existe pas. Toutefois, cette méthode est moins efficace que l'utilisation de la commande QUIT ou CANCEL pour mettre fin à un fichier de lot.
Option :
Vous ne pouvez pas passer à une autre instruction IFF, à une autre boucle DO ou à un niveau d'imbrication IFF ou DO différent, que vous utilisiez l' option /I ou non . Si vous le faites, vous finirez par recevoir une erreur "commande inconnue" (ou l'exécution de l' alias ou du greffon UNKNOWN_CMD ) sur une instruction ENDDO, ELSE, ELSEIFF ou ENDIFF ultérieure.