HOWTO · Batch

Ajouter des commentaires dans un script Batch

Ce didacticiel fournit un guide complet sur l’ajout de commentaires dans les scripts Batch. Découvrez les méthodes disponibles, notamment la commande REM et les doubles-points, et pourquoi GOTO — qui redirige l’exécution — n’est pas une méthode de commentaire. Découvrez les bonnes pratiques pour rédiger des commentaires efficaces qui clarifient votre code pour vous-même et pour les autres.

Sur cette page

Pour ajouter des commentaires à un fichier Batch Windows (.bat ou .cmd), choisissez REM, la solution la plus claire et la plus fiable. Une ligne commençant par :: sert aussi couramment de commentaire, mais CMD l’interprète comme une étiquette, ce qui impose quelques précautions de placement. Ces deux formes permettent d’expliquer l’intention ; aucune ne change ce que le script est censé faire.

Choisir une forme de commentaire Batch : REM ou ::

REM est une commande conçue pour marquer une remarque. C’est la forme standard et le meilleur choix par défaut lorsqu’un commentaire se trouve dans un groupe de commandes entre parenthèses. La forme :: est une convention qui ressemble à une étiquette : CMD la traite comme une étiquette, et non comme une commande de commentaire dédiée. Concise pour les notes autonomes, elle peut toutefois interagir avec l’analyse des blocs et le flux de contrôle. Pour obtenir un comportement prévisible, privilégiez REM lorsque la syntaxe environnante est complexe.

Les deux formes sont propres à Batch dans Windows CMD. Elles ne constituent pas une syntaxe de commentaire portable pour PowerShell, Bash ou d’autres interpréteurs de commandes. Dans la mesure du possible, placez les commentaires sur leur propre ligne et expliquez brièvement pourquoi une commande est nécessaire ou sur quelle hypothèse elle repose.

Ajouter des commentaires sur une ligne avec REM ou ::

L’exemple Windows CMD suivant est un petit modèle fonctionnel à enregistrer sous le nom comments.bat. Il place une ligne REM et une ligne :: avant des commandes afin de comparer les deux formes en contexte. L’exemple s’est exécuté correctement et a affiché les deux lignes d’état ci-dessous. Les libellés visibles dans l’exemple restent en anglais, car le bloc est conservé à l’identique.

@echo off
REM Describe the next action for the person maintaining this file.
echo Preparing the report
:: This label-like line is commonly used as a short note.
echo Report ready
Preparing the report
Report ready

Lorsque CMD rencontre une commande REM, il ignore le texte de la remarque comme instruction. Une ligne :: est traitée comme une étiquette et sert couramment au même usage visuel. Les commandes qui suivent chaque note s’exécutent tout de même. Le texte d’un commentaire ne doit pas laisser entendre que le script a effectué une tâche qu’il n’a pas réellement accomplie.

Gérer les commentaires dans les groupes de commandes et après une commande

Un commentaire peut se trouver entre deux commandes. Par exemple, une ligne REM peut être placée entre une ligne IF et les commandes qui la suivent. Dans un groupe entre parenthèses, placez REM sur une ligne distincte et évitez dans le commentaire les caractères susceptibles de modifier l’analyse de l’ensemble du groupe par CMD, en particulier les parenthèses non appariées. Lors de l’analyse d’un bloc de commandes entre parenthèses, CMD peut développer %name%, y compris dans le texte d’une ligne REM. La remarque est écartée au lieu d’être affichée, mais cette expansion peut tout de même modifier l’analyse du bloc. Rédigez donc ces notes simplement et évitez-y les expressions contenant des signes de pourcentage.

Pour ajouter une brève remarque après une commande, séparez-la avec & et utilisez REM, comme dans echo Preparing the report & REM this command prints the status. Le caractère & lance une autre commande sur la même ligne ; il ne rend pas toutes les formes de commentaire sûres dans tous les contextes. Évitez d’ajouter :: à la fin d’une commande, ainsi que de placer un commentaire après une commande IF dont la clause ELSE doit lui rester associée. Si une ligne combine une condition, un séparateur de commandes ou un groupe entre parenthèses, placez plutôt la note sur sa propre ligne. La structure des commandes sera ainsi plus lisible et les surprises liées à l’analyse seront moins probables.

Rédiger des notes multilignes sans risque

Batch ne possède pas de délimiteur natif pour les commentaires en bloc. La méthode la plus simple pour rédiger une note sur plusieurs lignes consiste à faire précéder chaque ligne de REM (ou de :: pour de simples notes autonomes). Il est préférable de répéter REM autour des groupes de commandes, car c’est une véritable commande dont le rôle est explicite.

GOTO redirige l’exécution vers une étiquette : il modifie donc le flux de contrôle du script et ne constitue pas une syntaxe de commentaire. Ne l’utilisez pas pour marquer un bloc comme commentaire ; répétez REM sur chaque ligne pour rédiger une note multiligne.

Choisissez REM dans la plupart des cas, réservez :: aux notes autonomes ressemblant à des étiquettes lorsque la structure environnante est simple, et placez les commentaires sur des lignes distinctes autour des commandes conditionnelles ou regroupées. Ces exemples concernent les fichiers Batch de Windows CMD ; ne les reprenez pas comme syntaxe de commentaire dans un autre interpréteur de commandes.