Objet :Exécuter une commande à l'invite de commande ou dans un fichier batch lorsqu'une condition spécifique est remplie.

 

Format :ON BREAK [command]

ON CLOSE [command]

ON CONDITION [condition command]

ON DBLCLICK [command]

ON ERROR [command]

ON ERRORLEVEL n [command]

ON ERRORMSG [command]

ON LOGOFF [command]

ON LBUTTON [command]

ON MBUTTON [command]

ON RBUTTON [command]

ON RESUME [command]

ON SHUTDOWN [command]

ON SUSPEND [command]

 

command        commande à exécuter lorsque l'événement se produit

/G                Définir une condition globale à partir d'un fichier batch

 

Utilisation :

 

ON définit une surveillance qui reste en vigueur pendant toute la durée de la session ou du fichier batch en cours, ou jusqu'à ce qu'elle soit remplacée par une autre commande ON du même type. Chaque fois qu'une  condition de rupture ou d'erreur se produit après l'exécution de ON, la commande correspondante  est automatiquement exécutée. Plusieurs commandes ON peuvent être actives à la fois, à condition qu'elles ne soient pas du même type. (Par exemple, vous pouvez avoir une commande ON BREAK et une commande ON CLOSE, mais pas deux commandes ON LBUTTON).

 

Si le dernier argument de la ligne est un simple (, ilest interprété comme le début d'un groupe de commandes. ON ajoutera les lignes suivantes (dans un fichier batch) ou vous invitera à saisir d'autres données (sur la ligne de commande) jusqu'à ce qu'il obtienne un ) defermeture .

 

Conditions globales :

 

Les conditions ON suivantes peuvent être exécutées à partir de l'invite de commande (une "condition globale") ; toutes les autres ne fonctionneront que dans un fichier batch.

 

ON CLOSE

ON LOGOFF

ON SHUTDOWN

ON SUSPEND

ON RESUME

 

Si aucune commande n'est spécifiée, TCC supprimera la commande existante pour la condition spécifiée. Chaque fois qu'une condition ON est définie, elle définit une nouvelle commande à exécuter pour cet événement, et toute commande antérieure est supprimée. Si une condition ON est définie pour le fichier batch en cours, elle remplacera une condition ON globale.

 

Activation de ON BREAK

 

ON BREAK exécute la commande si l'utilisateur appuie sur Ctrl-C ou Ctrl-Break.

 

Activation de ON CLOSE

 

ON CL OSE exécute la commande lorsque l'onglet TCC est fermé.

 

Activation de ON CONDITION

 

ON CONDITION exécute la commande lorsque lacondition est vraie. Lacondition peut être n'importe quel test valide dans IF. Le test sera effectué après l'exécution de chaque commande. Si vous exécutez une boucle (DO ou FOR), le test sera effectué à chaque passage dans la boucle.

 

Activation de ON DBLCLICK

 

ON DBLCLICK exécute une commande lorsque le bouton gauche de la souris est doublement cliqué alors que TCC est la fenêtre active. (Notez que si vous avez également une commande ON LBUTTON, elle sera exécutée au premier clic).

 

Activation deON ERROR et ON ERRORMSG

 

ON ERROR ou ON ERRORMSG exécute la commande après toute erreur critique, erreur du système d'exploitation (telle qu'une erreur d'écriture sur le disque) ou erreur de commande interne (telle qu'une  commandeCOPY qui ne parvient pas à copier des fichiers, ou l'utilisation d'une option de commande non valide).

 

ON ERROR exécute la commande immédiatement après l' apparition de l'erreur, sans afficher de message d'erreur (les erreurs Windows peuvent toujours être affichées). TCC message d'erreur (les erreurs Windows peuvent toujours être affichées). ON ERROR définit également la variable interne %_SYSERR.

 

ON ERRORMSG affiche d'abord le message d'erreur approprié, puis exécute la commande.

 

Si les deux sont spécifiés, ON ERROR est prioritaire et ON ERRORMSG est ignoré.

 

Activation de ON ERRORLEVEL

 

ON ERRORLEVEL n exécute la commande lorsque la variable interne ERRORLEVEL est égale à l'entier spécifié par n .Vous pouvez également utiliser les tests IF ERRORLEVEL ; par exemple :

 

ON ERRORLEVEL EQ 37 ...

 

Activation de ON LBUTTON

 

ON LBUTTON exécute la commande lorsque le bouton gauche de la souris est cliqué.

 

Activation de ON LOGOFF

 

ON LOGOFF exéc ute la commande lorsque l'utilisateur se déconnecte.

 

Activation de ON MBUTTON

 

ON MBUTTON exécutera la commande lorsque le bouton du milieu de la souris est cliqué lorsque TCC est la fenêtre active.

 

Activation de ON RBUTTON

 

ON RBUTTON exéc ute la commande lorsque le bouton droit de la souris est cliqué dans la fenêtre active. TCC est la fenêtre active.

 

Activation de ON RESUME

 

ON RES UME exécute la commande lorsque le système reprend après une période de sommeil ou d'hibernation.

 

Activation de ON SHUTDOWN

 

ON SHUTDOWN exéc ute la commande lorsque le système est en cours d'arrêt.

 

Activation de ON SUSPEND

 

ON S USPEND exécute la commande lorsque le système se met en veille ou en hibernation. Windows continuera à suspendre le système après un maximum de 2 secondes.

 

Champ d'application

 

Chaque fois qu'une instruction ON est définie, elle définit une nouvelle commande à exécuter pour cet événement, et toute commande antérieure est ignorée.

 

Si vous ne spécifiez pas de commande, TCC rétablit le gestionnaire par défaut.

 

Une instruction ON n'affecte que le fichier batch en cours. Lorsque le fichier de lot contenant ON est quitté pour quelque raison que ce soit, temporairement (par exemple, par un appel à un autre fichier de lot) ou définitivement, les gestionnaires de pause et d'erreur par défaut deviennent effectifs. TCC les gestionnaires de pause et d'erreurpar défaut  deviennent effectifs. Un fichier batch APPELÉ peut alors utiliser ON pour définir ses propres gestionnaires. Lorsque le contrôle revient au fichier batch appelant, ses  gestionnaires de pause et d'erreur qui étaient en vigueur lors de l'APPEL sont réactivés .

 

Limitations

 

La commande ON ERROR[MSG]ne sera pas invoquée si une erreur survient lors de la lecture ou de l'écriture d'une entrée redirigée, d'une sortie ou d'un tube.

 

Attention : Si une interruption ou une erreur se produit pendant l' exécution de lacommande spécifiée dans ON BREAK, ON ERROR, ON ERRORLEVEL, ou ON ERRORMSG, la commande sera redémarrée. Cela signifie que vous devez faire preuve de prudence pour éviter ou gérer toute erreur éventuelle dans les commandes invoquées par ON, car de telles erreurs peuvent provoquer une boucle infinie.

 

Exemples :

 

La commande peut être n'importe quelle commande pouvant être utilisée seule sur une ligne de fichier batch . Il s'agit souvent d'une commande GOTO ou GOSUB. Par exemple, le fragment suivant piège toute tentative de l'utilisateur de terminer le fichier batch en appuyant sur Ctrl-C ou Ctrl-Break. Il reproche à l'utilisateur d'avoir tenté de mettre fin au fichier de lots, puis continue :

 

on break gosub gotabreak

do i = 1 to 1000

 echo %i

enddo

quit

:gotabreak

echo Hey ! Stop that !!

return

 

Vous pouvez utiliser un groupe de commandes comme commande si vous voulez exécuter plusieurs commandes, par exemple :

 

on break (echo Oops, gotabreak ! & quit)

 

ON suppose que vous souhaitez poursuivre l'exécution du fichier batch. Une fois lacommande exécutée, le contrôle revient automatiquement à la commande du fichier de lots qui suit immédiatement celle qui a été interrompue par l'événement. Pour éviter de poursuivre l'exécution du fichier batch après l'événement à la commande suivante, effectuez l'une des opérations suivantes dans la commande:

 

•transférer le contrôle avec GOTO,

•terminer le fichier batch avec QUIT ou CANCEL

•enchaîner avec un autre fichier batch (sans utiliser CALL).

 

Lorsque vous traitez une  condition d'erreur avec ON ERROR[MSG], il peut être utile d'utiliser des variables internes, en particulier %_ ? et %_SYSERR, pour vous aider à déterminer la cause de l'erreur.

 

Pour forcer TCC à ignorer la rupture ou l'erreur, utilisez la  commande REM comme commande.

 

Options :

 

/GDéfinir une condition globale (qui sera exécutée que ce soit  dans un fichier batch ou à l'écran). TCC se trouve dans un fichier batch ou à l'invite de commande). Cette option est utile lorsque vous souhaitez définir des conditions globales à partir d'un fichier batch. Par exemple, la commande

 

CommandeON /G LOGOFF