Comment faire des commentaires à une invite de commande Windows?

67

Quel est l'équivalent de sessions de console #Windows cmdpour créer un commentaire?

Le système d'exploitation est Windows XP.

Andrew Grimm
la source
1
Notez que cmd.exesous Windows n’est pas DOS - c’est une application Windows complète qui n’a que la même syntaxe que celle decommand.com
grawity

Réponses:

90

REM est la manière standard:

REM this is a comment

Vous pouvez également utiliser la convention double-colon généralement utilisée dans les fichiers de commandes:

:: another comment

Un simple deux-points suivi d'une chaîne est une étiquette, mais un double-points et tout ce qui suit sont ignorés en silence. On pourrait soutenir que cette forme est plus lisible que la REMcommande.

Notez que ces deux méthodes ne fonctionnent qu'au début d'une ligne. Si vous souhaitez ajouter un commentaire à une commande, vous pouvez les utiliser avec la concaténation de commande character ( &), comme ceci:

dir & REM a comment
dir &:: another one
efotinis
la source
2
Merci. Cela ne fonctionne-t-il que si c'est la première chose à faire, par opposition à quelque chose de similaire dir :: comment?
Andrew Grimm
1
D'abord un lien utile . Ensuite, les commentaires de double-point ne semblent pas fonctionner à l'intérieur de blocs de code (code entre parenthèses, comme dans if/ forboucles).
x-yuri
@efotinis, est en remréalité une commande? Ne serait pas ::mieux parce qu'il s'est ignorée?
Pacerier
@Pacerier, oui REMest une commande réelle, mais elle est intégrée à CMD.EXE, elle devrait donc être assez efficace. D'autre part, ::peut être plus rapide, car il ignore tout en fin de ligne (par exemple, il ne vérifie pas l'utilisation de commandes chaînées &).
efotinis
2
Gardez à l'esprit que l'utilisation ::peut casser votre code dans certains cas, comme être la dernière ligne d'un bloc de code.
bryc
16

Vous préfixez votre commentaire avec le mot REM.

REM This is a comment.

Mais si vous souhaitez que votre commentaire soit de nouveau imprimé, vous devriez le répéter:

echo This is a comment you'll see.
Bernhard Hofmann
la source
Accepter que le travail, mais je ne suis un peu plus surpris si la réponse était BTW, comme dans lolcode.com/specs/1.2#comments
Andrew Grimm
5

La REMcommande ne remarque que (c.-à-d. Dire quelque chose sous forme de commentaire) que la ligne est en cours d'exécution. Cependant, s'il @echo offne figure pas dans le fichier de commandes, cette ligne sera toujours renvoyée à l'écran.

Pour empêcher l’affichage de ces lignes, vous pouvez effectuer l’une des trois choses suivantes.

  1. Ajouter @echo off au fichier de commandes :
    Si vous souhaitez masquer toutes les commandes ainsi que les lignes REM, ajoutez @echo off comme première ligne du fichier de commandes.
  2. Remplacez REM par @REM :
    si vous souhaitez que les commandes soient affichées lors de l’exécution du fichier de commandes, mais que vous souhaitiez masquer les lignes REM, saisissez @REM au lieu de REM.
  3. Utilisez: :( (ie invalide lable ) au lieu de REM :
    Enfin, l'utilisation de la commande :: comme commande de remarque au lieu de REM empêche également l'écho de la ligne remarquée.

la source

Premraj
la source
2

Je crois que la réponse fournie par bernhard est incorrecte.

Au moins par la victoire 7,

rem comment

dans un fichier de commandes imprimera dans la sortie. Pour supprimer l’impression, utilisez

@ rem comment

ou

@rem comment

Il en va de même pour les autres commandes, qui par défaut sont répercutées sur la console.

pbpb
la source
La commande REM commentn’imprimera aucune sortie à l’écran. Pour une démonstration en direct, ouvrez une invite de commande et exécutez echo commentpuis exécutez la commande rem comment. Notez que la echocommande imprime la sortie à l'écran, remcontrairement à la commande.
Je dis: réintégrez Monica
J'utilise toujours @REM commentdans mes scripts batch pour éviter leur apparition. J'aurais suggéré de modifier Bernards answer pour inclure l'utilisation de @ before REM dans les scripts batch afin d'éviter qu'elle n'apparaisse au lieu d'afficher une nouvelle réponse.
Robin Hood
3
@RobinHood, les fichiers de commandes font écho à toutes les commandes par défaut (à des fins de débogage), c'est pourquoi il est habituel de les démarrer @ECHO OFF & SETLOCAL .... De cette façon, vous n'avez pas besoin de faire précéder @toutes les lignes et vous pouvez facilement passer en ECHO ONcas de problème et effectuer des tests.
efotinis