| 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 :
CommandeON /G LOGOFF