Commandes de pause et d'attente des fichiers batch : comment contrôler le flux de vos scripts

Commandes De Pause Et D Attente Des Fichiers Batch Comment Controler Le Flux De Vos Scripts



Dans les scripts par lots sous Windows, les développeurs peuvent contrôler le flux de vos scripts à l'aide de diverses techniques ou méthodes pour introduire des pauses ou des attentes. Les commandes « pause » et « attendre » sont deux façons de contrôler le flux de vos fichiers batch. La commande « pause » arrête l'exécution d'un fichier batch tout en présentant le message « Appuyez sur n'importe quelle touche pour continuer… ». Le fichier batch ne peut pas s'exécuter tant que l'utilisateur n'appuie pas sur une touche. L’exécution du fichier batch est suspendue pendant le nombre de secondes indiqué par l’instruction d’attente.

Commande de pause du fichier batch

La commande « pause » d'un fichier batch arrête l'exécution du fichier batch tout en affichant le message sur la ligne de commande. Le fichier batch ne s’exécutera pas tant que l’utilisateur n’appuiera pas sur une touche. La commande qui arrête la prochaine exécution est utile. Il est avantageux d’exécuter directement le fichier batch et de voir la sortie souhaitée apparaître à l’écran.







La syntaxe de la commande « pause » est :



Pause

Inviter l'utilisateur à entrer des données

La commande « pause » dans le script de commandes suivant affiche le message « Appuyez sur n'importe quelle touche pour continuer… » lorsque l'utilisateur exécute ce fichier de commandes. Avant que le fichier batch passe à la commande « dir », l'utilisateur doit appuyer sur une touche.



@Écho off

rem Ce fichier de commandes s'arrête pour que l'utilisateur appuie sur une touche.

echo Bonjour, Bienvenue dans la démonstration de la commande PAUSE.

echo L'exécution du script continue après la pause.

pause

rem Ce fichier batch continue avec la commande suivante.

écho Merci!

toi





Lorsque l'utilisateur appuie sur n'importe quelle touche du clavier, ce processus par lots se poursuit :



Commande d'attente de fichier batch

Le code que vous avez fourni est un fichier batch qui ouvre deux programmes : Notepad et Paint. Le code est comme suit:

@Écho off

echo Démarrage du premier programme.

START /B /WAIT notepad.exe

echo Bloc-notes ouvert en arrière-plan avec succès

echo Démarrage du deuxième programme.

DÉMARRER / ATTENDRE mspaint.exe

echo La peinture est ouverte avec succès.

cmd /k

La première ligne, « @echo off », empêche le fichier batch d'afficher les commandes au fur et à mesure de leur exécution.

L'utilisateur est simplement informé que le premier programme est en cours de lancement par la deuxième ligne qui est « echo Starting First Program ».

La troisième ligne, « START /B /WAIT notepad.exe », ouvre le programme Notepad dans une fenêtre en arrière-plan et attend qu'il se termine avant de continuer. Le commutateur «/B» indique à la commande START d'exécuter le programme dans une fenêtre en arrière-plan, et le commutateur «/WAIT» indique à la commande START d'attendre la fin du programme avant de continuer.

La quatrième ligne lit le bloc-notes d'écho. Lorsque le Bloc-notes est ouvert avec succès en arrière-plan, il informe simplement l'utilisateur avec un message.

La cinquième ligne, « echo Starting Second Program », affiche simplement un message à l'utilisateur indiquant que le deuxième programme est en cours de démarrage.

La sixième ligne, « START /WAIT mspaint.exe », ouvre le programme Paint dans une fenêtre en arrière-plan et n'attend pas qu'il se termine pour continuer.

La septième ligne, « echo The Paint is Opened with success », affiche simplement un message à l'utilisateur indiquant que Paint a été ouvert avec succès.

La huitième ligne, « cmd /k », ouvre une nouvelle fenêtre d'invite de commande et maintient la fenêtre d'invite de commande actuelle ouverte.

Utiliser une boucle pour des délais personnalisés

Nous pouvons utiliser une boucle pour des délais personnalisés dans le processus par lots. Voici un exemple:

Dans cet exemple, le premier message est affiché à l'utilisateur lors de l'exécution de ce fichier batch. Le premier message s'affiche ensuite à nouveau une fois la boucle « for » commencée. La commande timeout arrête le fichier batch pendant une seconde avant d'afficher le deuxième message. Le message final est ensuite affiché après un total de 10 itérations.

@Écho off

echo Démonstration du retard à l'aide d'une boucle

pour /l  %%i dans (1,1,10) faire (

délai d'attente /t 1 /nobreak > nul

echo Ce message s'affiche après %%i  seconde(s)

)

echo Ce message affichait un délai de 10 secondes.

Utilisation du délai d'attente pour le délai

La commande timeout d’un fichier batch suspend l’exécution du fichier batch pendant un nombre de secondes prédéterminé. La syntaxe est donnée ici :

délai d'attente /t [/nobreak]

Le commutateur «/t» spécifie la durée d'attente en secondes. Le commutateur «/nobreak» désactive les pressions sur les touches de l'utilisateur pour rompre le délai.

La commande « timeout » peut être utilisée pour :

  • Reporter l’exécution d’un fichier batch pendant une période de temps prédéterminée
  • Empêcher une action de fichier batch d'être interrompue par l'utilisateur
  • Créez une expérience plus conviviale en évitant à l'utilisateur d'avoir à appuyer sur une touche pour continuer

Par exemple, le fichier de commandes suivant s'interrompt pendant 10 secondes :

@Écho off

echo Bonjour, L'exécution du script continue après 10 secondes de délai

délai d'attente /t 10

écho Merci !

Comme le montre la capture d'écran suivante, une minuterie est en cours d'exécution et attend que l'utilisateur interrompe la commande « timeout » en appuyant sur n'importe quelle touche. Si l'utilisateur appuie sur une touche, le processus s'arrête et passe à la commande suivante dans le fichier batch :

L'utilisateur dans la capture d'écran suivante interrompt la commande « timeout » après 5 secondes, ce qui entraîne l'affichage du message « Merci ! message:

La capture d'écran suivante montre comment le message « Merci ! » Le message prend 10 secondes pour s'imprimer à l'écran si l'utilisateur final n'interrompt pas l'instruction de délai d'attente :

Voici le code mis à jour qui a été modifié pour inclure le commutateur sans interruption qui empêche l'utilisateur final d'interrompre un processus de fichier batch :

@Écho off

rem Ce fichier batch fait une pause de 10 secondes

echo Bonjour, L'exécution du script continue après 10 secondes de délai

délai d'attente /t 10 /nobreak

rem Après 10 secondes, cette commande sera affichée sur l'écran d'invite

écho Merci !

Voici le résultat du code précédent :

La ligne de commande invite l'utilisateur à taper Y ou N s'il utilise la commande « CTRL+C ». Si l'utilisateur clique sur Y, ce travail par lots est arrêté :

Les commandes « pause », « attendre » et « timeout » sont les moyens de contrôler le flux de nos scripts. L'exécution du script est suspendue lorsque la commande « pause » est utilisée, et il est arrêté pendant une durée prédéterminée lorsque la commande « timeout » est utilisée.

Utilisation d'instructions conditionnelles pour le contrôle de flux

Les instructions conditionnelles sont la technique la plus couramment utilisée pour modifier le flux d’un script en fonction de certaines circonstances. Selon qu'une condition est vraie ou fausse, l'instruction « if » exécute l'une des deux parties de code. L'instruction « if » est structurée comme suit :

si sinon

Exemple:

Ouvrez le Bloc-notes ou n'importe quel éditeur de texte de votre choix et écrivez le code suivant qui initialise la valeur de la variable inputValue à 1 dans la troisième ligne. La valeur de la variable inputValue est ensuite vérifiée à l'aide d'une instruction « if » au moment de l'exécution pour voir si elle est égale à 1, 2 ou 3. Si tel est le cas, le message approprié est imprimé sur l'écran de ligne de commande. Si ce n'est pas le cas, le message final s'affiche. Dans une instruction conditionnelle appelée « if », la valeur d'entrée d'une variable est vérifiée pour voir si elle est égale à 1, 2 ou 3. Si c'est le cas, l'un des deux blocs de code est ensuite exécuté. Si la condition est vraie, l’instruction conditionnelle ne fait rien.

@Écho off

rem Ce script teste la variable inputValue par rapport aux valeurs 1, 2 et 3.

définir valeur d'entrée = 1

si '%inputValue%'=='1' (

echo La valeur d'entrée est égale à 1.

) sinon si '%inputValue%'=='2' (

echo La valeur d'entrée est égale à 2.

) sinon si '%inputValue%'=='3' (

echo La valeur d'entrée est égale à 3.

) autre (

echo La variable inputValue n'est pas égale à 1, 2 ou 3.

)

Sortir:

Conclusion

Le flux des scripts peut être contrôlé et les processus peuvent être automatisés sur le système d'exploitation Windows à l'aide de commandes, de boucles et d'instructions conditionnelles telles que « if ». Les développeurs peuvent arrêter l'exécution d'un script ou ajouter des délais avec la commande « pause » en utilisant « timeout » ou « ping ». Bien qu'il n'y ait pas d'instruction « switch » intégrée dans les scripts batch, nous pouvons la simuler avec les expressions « if » et « else if ». Les tests sont essentiels pour garantir que ces scripts fonctionnent comme prévu dans le contexte approprié. Ces scripts sont utiles pour l'automatisation, la gestion du système et la manipulation de fichiers.