14Sep

Comment écrire un script batch sur Windows

Savez-vous comment utiliser l'invite de commande? Si vous le faites, vous pouvez écrire un fichier batch. Dans sa forme la plus simple, un fichier batch( ou un script batch) est une liste de plusieurs commandes qui sont exécutées lorsque vous double-cliquez sur le fichier. Les fichiers batch vont jusqu'à DOS, mais fonctionnent toujours sur les versions modernes de Windows.

Les scripts PowerShell et les scripts Bash peuvent être plus puissants, mais les fichiers batch peuvent être très utiles si vous avez besoin d'exécuter des commandes Windows basiques.

Notions de base sur les fichiers batch

Un fichier batch est simplement un fichier texte enregistré avec l'extension. bat. Vous pouvez en écrire un en utilisant Notepad ou un éditeur de texte plus avancé comme Notepad ++, mais n'utilisez pas de traitement de texte comme Microsoft Word.

Créons un fichier batch simple. D'abord, ouvrez le Bloc-notes. Tapez les lignes suivantes:

ECHO OFF ECHO Bonjour monde PAUSE

Ensuite, enregistrez le fichier en cliquant sur Fichier & gt;Sauvegarder. Donnez-lui le nom que vous voulez, 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 batch avec l'extension de fichier. bat. Double-cliquez dessus pour l'exécuter. Ce fichier batch particulier éteint ECHO( qui nettoie la sortie en masquant les commandes à imprimer à l'invite, imprime le texte "Hello World" à l'écran, puis attend que vous appuyiez sur une touche avant qu'elle ne se termine.)

Ifvous n'avez pas ajouté PAUSE au fichier, le fichier de commandes exécute simplement ses commandes et se ferme automatiquement, dans ce cas, il affiche "Hello World" dans la fenêtre, puis ferme immédiatement la fenêtre d'invite de commandes. Si vous exécutez plusieurs commandes, vous pouvez placer la commande PAUSE entre elles

Écrire un fichier batch plus complexe

Il est fondamentalement simple de créer un fichier batch. Ce que vous devez changer, c'est ce que vous tapez dans le Bloc-notes Pour exécuter plusieurs commandes, vous tapez chacune sur sa propre ligne et le fichier séquentiel les exécutera dans l'ordre

Par exemple, disons que nous voulons écrire un fichier batchcourt sevtoutes les commandes de diagnostic du réseau. Nous souhaitons peut-être exécuter ipconfig / all pour afficher les informations réseau, envoyer un ping à google.com pour voir si les serveurs de Google répondent, et tracert google.com pour exécuter un traceroute sur google.com et voir s'il y a des problèmes sur le chemin.

Dans la forme la plus basique, nous pourrions simplement placer toutes ces commandes dans un fichier séquentiel, l'une après l'autre, comme ceci:

ipconfig / tout ping google.com tracert google.com PAUSE

Lorsque nous exécutons ce fichier, nous avionsil suffit de voir la sortie de chaque commande juste après l'autre. Mais ce n'est pas nécessairement 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ée. Cela en fait un moyen utile d'expliquer ce qui se passe dans le fichier pour toute personne à qui vous pourriez le donner - ou pour votre futur individu, qui pourrait oublier pourquoi vous avez mis une certaine commande là-dedans.

Vous pouvez également ajouter la commande "ECHO OFF" au début du fichier. Ceci est généralement ajouté au début de la plupart des fichiers batch. Lorsque vous faites cela, les commandes elles-mêmes ne seront pas imprimées à l'invite de commandes, 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 se soucient pas de voir les commandes, donc cela peut nettoyer la sortie.

Voici donc à quoi cela pourrait ressembler:

: : Ce fichier batch vérifie les problèmes de connexion réseau. ECHO OFF: : Afficher les détails de la connexion réseau ipconfig / all: : Vérifier si Google.com est joignable ping google.com: : Exécuter un traceroute pour vérifier l'itinéraire vers Google.com tracert google.com PAUSE

Il y a d'autres directions que vous pourriez suivreavec un fichier batch comme celui-ci. Par exemple, vous souhaiterez peut-être que votre script de traitement par lots exécute les commandes ci-dessus, puis affichez la sortie dans un fichier texte que vous pourrez afficher plus tard. Pour ce faire, vous devez utiliser le & gt; & gt;opérateur après chaque commande pour ajouter sa sortie au fichier texte. Comme nous allons quand même lire la sortie du fichier texte, nous pouvons omettre la commande PAUSE.

: : Ce fichier de commandes vérifie les problèmes de connexion réseau: : et enregistre la sortie dans un fichier. txt. ECHO OFF: : Afficher les détails de connexion réseau ipconfig / all & gt; & gt;results.txt: : Vérifie si Google.com est joignable ping google.com & gt; & gt;results.txt: : Exécutez un traceroute pour vérifier l'itinéraire vers Google.com tracert google.com & gt; & gt;results.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 batch avec la sortie des commandes. La fenêtre Invite de commandes se ferme automatiquement une fois que le fichier de traitement par lots est exécuté.

L'exemple que nous utilisons ci-dessus repose sur l'impression d'informations dans l'invite de commande afin que l'utilisateur puisse le lire. Cependant, de nombreux fichiers batch sont conçus pour être exécutés de manière non interactive. Par exemple, vous pouvez avoir un fichier batch qui supprime plusieurs fichiers ou répertoires chaque fois que vous double-cliquez dessus. Vous devez simplement utiliser la commande del pour supprimer des fichiers ou la commande deltree pour supprimer des répertoires. N'oubliez pas que vous utilisez simplement les mêmes commandes que celles que vous exécutez dans une fenêtre d'invite de commandes.

Fondamentalement, c'est le point de la plupart des fichiers batch: il suffit d'exécuter quelques commandes les unes après les autres. Cependant, les fichiers de traitement par lots 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. C'est plus comme écrire un petit programme réel qu'un script rapide et sale. C'est l'une des raisons pour lesquelles les fichiers. bat sont parfois appelés "programmes batch". Si vous voulez faire quelque chose de plus complexe, vous trouverez de nombreux guides pour faire des choses spécifiques avec la programmation par lots en ligne. Mais maintenant, vous connaissez les bases de la façon d'en lancer une simple ensemble.