Comment écrire un script batch sous Windows
Savez-vous comment utiliser l'invite de commande? Si vous le faites, vous pouvez écrire un fichier de commandes. Dans sa forme la plus simple, un fichier de commandes (ou script de commandes) est une liste de plusieurs commandes exécutées lorsque vous double-cliquez sur le fichier. Les fichiers de commandes remontent entièrement au DOS, mais fonctionnent toujours sur les versions modernes de Windows.
Les scripts PowerShell et les scripts Bash sont peut-être plus puissants, mais les fichiers de commandes peuvent quand même s'avérer très utiles si vous devez exécuter des commandes Windows de base..
Notions de base sur les fichiers batch
Un fichier de commandes est simplement un fichier texte enregistré avec l'extension de fichier .bat. Vous pouvez en écrire un en utilisant Notepad ou un éditeur de texte plus avancé tel que Notepad ++, mais n'utilisez pas de traitement de texte tel que Microsoft Word..
Créons un fichier batch simple. Tout d'abord, ouvrez le Bloc-notes. Tapez les lignes suivantes:
ECHO OFF ECHO Hello World PAUSE
Enregistrez ensuite le fichier en cliquant sur Fichier> Enregistrer. Donnez-lui le nom de votre choix, mais remplacez l'extension de fichier .txt par défaut par l'extension .bat.
Par exemple, vous pourriez vouloir le nommer hello_world.bat
.
Vous avez maintenant un fichier de commandes avec l'extension de fichier .bat. Double-cliquez dessus pour l'exécuter. Ce fichier batch particulier désactive ECHO (ce qui nettoie la sortie en masquant les commandes imprimées à l’invite, en imprimant le texte «Hello World» à l’écran, puis en attendant que vous appuyiez sur une touche avant la fin..
Si vous n'avez pas ajouté PAUSE
au fichier, le fichier de commandes exécuterait simplement ses commandes et se fermerait automatiquement. Dans ce cas, il afficherait «Hello World» dans la fenêtre, puis fermerait immédiatement la fenêtre d'invite de commande. Lorsque vous souhaitez exécuter rapidement des commandes sans voir la sortie, vous pouvez l'omettre. Si vous exécutez plusieurs commandes, vous pouvez placer le PAUSE
commande entre eux.
Écrire un fichier batch plus complexe
C'est fondamentalement simple de créer un fichier batch. La seule chose que vous devez changer est ce que vous tapez dans le Bloc-notes. Pour exécuter plusieurs commandes, vous tapez chacune sur sa propre ligne et le fichier de commandes les exécutera dans l’ordre..
Par exemple, supposons que nous voulions écrire un fichier de commandes qui exécute plusieurs commandes de diagnostic réseau. Nous pourrions vouloir courir ipconfig / all
pour afficher des informations sur le réseau, ping google.com
pour voir si les serveurs de Google répondent, et tracert google.com
lancer un traceroute sur google.com et voir s’il ya des problèmes sur le chemin.
Dans la forme la plus élémentaire, nous pourrions simplement placer toutes ces commandes dans un fichier de commandes, les unes après les autres, comme suit:
ipconfig / all ping google.com tracert google.com PAUSE
Lorsque nous exécutons ce fichier, nous ne voyons que la sortie de chaque commande juste après l’autre. Mais ce n'est pas forcément le moyen idéal pour écrire un fichier batch.
Par exemple, vous pouvez ajouter des lignes de commentaire. Toute ligne commençant par un ::
est une ligne de commentaire et ne sera pas exécuté. Cela en fait un moyen utile d’expliquer ce qui se passe dans le fichier à toute personne à qui vous pourriez le donner - ou à votre futur individu, qui pourrait oublier pourquoi vous y mettez une certaine commande..
Vous pouvez également vouloir ajouter la commande “ECHO OFF” au début du fichier. Ceci est généralement ajouté au début de la plupart des fichiers de commandes. Dans ce cas, les commandes elles-mêmes ne seront pas imprimées dans l'invite de commande, mais les résultats le seront. Par exemple, vous verrez les détails de la connexion réseau mais pas la ligne «ipconfig / all». La plupart des gens ne s’intéressent pas à voir les commandes, cela peut donc nettoyer la sortie.
Alors, voici à quoi cela pourrait ressembler:
:: Ce fichier de commandes vérifie les problèmes de connexion au réseau. ECHO OFF :: Afficher les détails de la connexion réseau ipconfig / all :: Vérifier si Google.com est accessible Ping google.com :: Exécutez un parcours pour vérifier l'itinéraire vers Google.com tracert google.com PAUSE
Il y a d'autres directions que vous pourriez utiliser avec un fichier de commandes comme celui-ci. Par exemple, vous pouvez souhaiter que votre script de commandes exécute les commandes ci-dessus, puis transfère le résultat dans un fichier texte que vous pourrez visualiser ultérieurement. Pour ce faire, vous utiliseriez le >>
opérateur après chaque commande pour ajouter sa sortie au fichier texte. Comme nous allons lire le résultat du fichier texte de toute façon, nous pouvons omettre le PAUSE
commander.
:: Ce fichier de commandes recherche les problèmes de connexion au réseau :: et enregistre le résultat dans un fichier .txt. ECHO OFF :: Afficher les détails de la connexion réseau ipconfig / all >> résultats.txt :: Vérifier si Google.com est accessible Ping google.com >> résultats.txt :: Exécuter un traceroute pour vérifier l'itinéraire vers Google.com tracert google. com >> résultats.txt
Après avoir exécuté le script ci-dessus, vous trouverez un fichier nommé results.txt dans le même dossier que le fichier de commandes avec le résultat des commandes. La fenêtre d'invite de commande se ferme automatiquement une fois le fichier de traitement par lots exécuté..
L'exemple que nous utilisons ci-dessus repose sur l'impression d'informations dans l'invite de commandes afin que l'utilisateur puisse les lire. Cependant, de nombreux fichiers de commandes sont conçus pour être exécutés de manière non interactive. Par exemple, vous pouvez avoir un fichier de commandes qui supprime plusieurs fichiers ou répertoires chaque fois que vous double-cliquez dessus. Vous auriez juste besoin d'utiliser le del
commande pour supprimer des fichiers ou le délire
commande pour supprimer des répertoires. N'oubliez pas que vous utilisez uniquement les mêmes commandes que celles exécutées dans une fenêtre d'invite de commande..
Fondamentalement, c’est le but de la plupart des fichiers de commandes: il suffit d’exécuter quelques commandes les unes après les autres. Cependant, les fichiers de commandes peuvent en réalité être beaucoup plus complexes que cela. Par exemple, vous pouvez utiliser les instructions «IF» avec la commande «GOTO» pour vérifier la valeur de quelque chose, puis passer à différentes lignes en fonction du résultat. Cela ressemble plus à l'écriture d'un petit programme que d'un script rapide et sale. C'est l'une des raisons pour lesquelles les fichiers .bat sont parfois appelés «programmes de traitement par lots». Si vous souhaitez effectuer quelque chose de plus complexe, vous trouverez de nombreux guides permettant d'effectuer des opérations spécifiques avec la programmation par lots en ligne. Mais maintenant, vous connaissez les bases sur la façon de lancer un simple ensemble.