HOWTO · Batch

Exécuter des commandes CMD dans un script Batch

Ce didacticiel explique comment exécuter les commandes CMD dans Batch Script.

Sur cette page

Un fichier batch Windows est un fichier texte qui exécute des commandes CMD dans l’ordre. Vous pouvez ainsi enregistrer une suite d’étapes répétées et les lancer ensemble. Placez chaque commande sur sa propre ligne, enregistrez le fichier avec l’extension .bat ou .cmd, puis lancez-le depuis l’Explorateur de fichiers ou l’invite de commandes. L’ordre est important : une commande qui utilise un dossier ou un fichier doit s’exécuter après l’étape qui le crée ou permet d’y accéder.

Exécution des commandes CMD par un script batch

CMD lit un fichier batch de haut en bas et traite chaque ligne comme une commande. La ligne @echo off masque les commandes pendant leur exécution, mais pas le texte affiché par echo. L’exemple shell exécutable ci-dessous affiche le même message ; dans un fichier .bat ou .cmd, la commande CMD équivalente est echo Batch commands run in order. Le texte affiché par cet exemple reste en anglais.

Exécutez cet exemple :

printf '%s\n' 'Batch commands run in order.'
Batch commands run in order.

Lorsque l’exemple shell s’exécute, printf écrit le message sur la sortie standard. Dans un fichier batch Windows, la commande echo équivalente l’affiche dans la fenêtre de l’invite de commandes. L’exemple est volontairement court ; lorsque vous avez besoin d’autres étapes, ajoutez d’autres commandes CMD, chacune sur une ligne distincte.

Placer des commandes dans un fichier batch

Ouvrez un éditeur de texte brut, saisissez les commandes dans l’ordre où elles doivent s’exécuter, puis enregistrez le fichier sous un nom descriptif, par exemple daily-task.bat. Les extensions .bat et .cmd désignent toutes deux des scripts de commandes Windows. Vérifiez que l’éditeur a bien enregistré l’extension choisie et n’a pas ajouté discrètement une extension de fichier texte.

Pour une tâche plus longue, gardez les commandes dépendantes dans le bon ordre. Par exemple, définissez un dossier réutilisable avec set "WORK_DIR=%TEMP%\BatchDemo", créez-le avec if not exist "%WORK_DIR%" mkdir "%WORK_DIR%", accédez-y avec cd /d "%WORK_DIR%", puis créez et affichez un fichier d’état avec echo Batch file ran successfully.>status.txt et type status.txt. mkdir doit précéder cd afin que le dossier existe avant que le script y accède. Au besoin, cd /d change à la fois de lecteur et de répertoire ; les guillemets autour de la variable permettent de traiter correctement un chemin contenant des espaces. Il s’agit de commandes de script : leurs effets précis dépendent de l’environnement Windows dans lequel le fichier batch s’exécute.

Exécuter le fichier batch

Dans l’Explorateur de fichiers, double-cliquez sur le fichier batch enregistré pour le lancer. Pour l’exécuter depuis une fenêtre d’invite de commandes déjà ouverte, accédez à son dossier avec cd /d, puis saisissez son nom. Si le fichier se trouve ailleurs, saisissez son chemin complet entre guillemets, par exemple "C:\Users\Sam\Scripts\daily-task.bat" ; remplacez ce chemin d’exemple par l’emplacement du fichier sur votre ordinateur.

L’exécution depuis l’invite de commandes est utile si vous voulez lire les messages ou diagnostiquer le script au fur et à mesure. La commande pause attend une pression sur une touche, mais elle est généralement inutile lorsque vous lancez le fichier dans une fenêtre qui reste ouverte. Pour le dépannage, vous pouvez aussi retirer @echo off afin de voir chaque commande au moment où CMD la traite.

Utiliser des variables et des conditions

Une variable stocke une valeur qui peut être réutilisée. Dans un fichier batch, définissez-en une avec set "NAME=value" et utilisez-la sous la forme %NAME%. La syntaxe d’affectation avec guillemets évite d’inclure par erreur des espaces autour de la valeur. L’exemple précédent stocke un chemin de dossier dans WORK_DIR et le réutilise dans plusieurs commandes ; si vous modifiez le dossier à un seul endroit, toutes ces références utilisent alors la nouvelle valeur.

Utilisez une instruction if lorsqu’une commande doit dépendre d’une condition. Par exemple, if exist "%WORK_DIR%\status.txt" echo Status file found affiche un message uniquement si le fichier existe. Si plusieurs actions doivent être effectuées ensemble, regroupez leurs commandes entre parenthèses après la condition. Gardez le chemin entre guillemets dans la condition et dans les commandes afin que les espaces dans le nom d’un dossier ne le séparent pas en plusieurs arguments.

Vérifier les problèmes courants

Si le script ne démarre pas, vérifiez que le nom du fichier enregistré se termine par .bat ou .cmd et que l’éditeur n’a pas ajouté une autre extension. Si CMD indique qu’une commande ne trouve pas un chemin, vérifiez l’orthographe du dossier et assurez-vous que toute étape de création du répertoire précède la commande qui y accède ou l’utilise. Mettez entre guillemets les chemins qui contiennent des espaces.

Si une fenêtre se ferme avant que vous puissiez lire un message, lancez le fichier depuis l’invite de commandes ou ajoutez pause pour faciliter le diagnostic. Si une commande ne se comporte pas comme prévu, exécutez les commandes une par une dans CMD et comparez leur ordre et leurs chemins avec ceux du fichier batch. Regrouper les commandes répétées permet d’exécuter et de mettre à jour plus facilement les tâches courantes sous Windows.