Comment "Commenter" (ajouter un commentaire) dans un lot / cmd?

J'ai un fichier batch qui exécute plusieurs scripts python qui font des modifications de table.

  1. Je veux que les utilisateurs commentent les scripts python 1-2 qu'ils ne veulent pas exécuter, plutôt que de les supprimer du fichier batch (donc l'utilisateur suivant sait que ces scripts existent en tant qu'options!)

  2. Je veux également ajouter des commentaires pour porter à leur attention spécifiquement les variables qu'ils doivent mettre à jour dans le fichier Batch avant de l'exécuter. Je vois que je peux utiliser REM. Mais il on dirait que c'est plus pour mettre à jour l'utilisateur avec la progression après l'avoir exécuté.

Existe-t-il une syntaxe pour ajouter de manière plus appropriée un commentaire?

665
demandé sur T.Todua 2012-06-30 01:40:58

7 réponses

La commande rem est en effet pour les commentaires. Il ne met à jour personne après l'exécution du script. Certains auteurs de scripts peuvent l'utiliser de cette façon au lieu de echo, car par défaut, l'interpréteur de commandes imprime chaque commande avant qu'elle ne soit traitée. Puisque les commandes rem ne font rien, il est sûr de les imprimer sans effets secondaires. Pour éviter d'imprimer une commande, préfixez-la avec @ ou, pour appliquer ce paramètre dans tout le programme, exécutez @echo off. (C'est echo off à évitez d'imprimer d'autres commandes; le {[4] } est d'éviter d'imprimer Cette commande avant que le paramètre echo ne prenne effet.)

Donc, dans votre fichier batch, vous pouvez utiliser ceci:

@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py
674
répondu Rob Kennedy 2012-06-29 21:49:47

your commands here :: commenttttttttttt

Ou

your commands here REM commenttttttttttt

Notes:

  • Dans la logique imbriquée(IF-ELSE, FOR boucles, etc...) :: déclenche une erreur, utilisez donc REM là ou échapper en utilisant ^ caractère, ex. ^( et ^)

  • Dans certains cas (si vous l'utilisez inline), vous devrez peut-être ajouter & signe: & :: commenttttt

730
répondu T.Todua 2018-09-28 20:22:51

Non, les anciens fichiers batch utilisent REM Comme Commentaire. {[2] } est la commande qui imprime quelque chose sur l'écran.

Pour "commenter" les sections du fichier, vous pouvez utiliser GOTO. Un exemple de toutes ces commandes/techniques:

REM it starts here the section below can be safely erased once the file is customised
ECHO Hey you need to edit this file before running it!  Check the instructions inside
ECHO Now press ctrl-c to interrupt execution or enter to continue
PAUSE
REM erase the section above once you have customised the file
python executed1.py
ECHO Skipping some stuff now
GOTO End
python skipped1.py
python skipped2.py
:END
python executed2.py

Que puis-je dire? les fichiers batch sont une relique de temps révolus, ils sont maladroits et laids.

, Vous pouvez en savoir plus sur ce site web.

EDIT: modifié un peu l'exemple pour qu'il contienne les éléments que vous cherchez apparemment pour.

43
répondu fvu 2012-06-29 22:01:22

Le:: au lieu de REM était de préférence utilisé à l'époque où les ordinateurs n'étaient pas très rapides. La ligne REM'ed sont lues et puis ingnored. :: 'ligne ed sont ignorés tout le chemin. Cela pourrait accélérer votre code dans les "vieux jours". De plus, après un REM, vous avez besoin d'un espace, après:: vous ne le faites pas.

Et comme dit dans le premier commentaire: vous pouvez ajouter des informations à n'importe quelle ligne vous vous sentez le besoin de

SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS

Comme pour le saut de pièces. Mettre REM devant chaque ligne peut prendre beaucoup de temps. Comme mentionné en utilisant GOTO pour sauter des pièces est un moyen facile de sauter de gros morceaux de code. Assurez-vous de définir une étiquette :au point où vous voulez que le code continue.

SOME CODE

GOTO LABEL  ::REM OUT THIS LINE TO EXECUTE THE CODE BETWEEN THIS GOTO AND :LABEL

SOME CODE TO SKIP
.
LAST LINE OF CODE TO SKIP

:LABEL
CODE TO EXECUTE
28
répondu Kees 2013-11-02 21:49:08

Commentaires multi-lignes

S'il y a un grand nombre de lignes que vous voulez commenter, il vaudra mieux que vous puissiez faire des commentaires sur plusieurs lignes plutôt que de commenter chaque ligne.

Le langage batch n'a pas de blocs de commentaires, bien qu'il existe des moyens d'accomplir l'effet.

GOTO EndComment1
This line is comment.
And so is this line.
And this one...
:EndComment1

Vous pouvez utiliser GOTO Label et: Label pour faire des commentaires de bloc.

Ou, si le bloc commentaire apparaît à la fin du fichier batch, vous pouvez écrire EXIT à la fin du code et ensuite, un certain nombre de commentaires pour votre compréhension.

@ECHO OFF
REM Do something
  •
  •
REM End of code; use GOTO:EOF instead of EXIT for Windows NT and later
EXIT

Start of comment block at end of batch file
This line is comment.
And so is this line.
And this one...

Commentaires Source

22
répondu Somnath Muluk 2016-08-24 10:50:55

Mettre des commentaires sur la même ligne avec des commandes: utilisez & :: comment

color C          & :: set red font color
echo IMPORTANT INFORMATION
color            & :: reset the color to default

Explication:

& sépare les deux commandes, dans ce cas - color C est la première commande et :: set red font color est la seconde.


Important:

Cette déclaration avec commentaire semble intuitivement correcte:

goto error1         :: handling the error

Mais ce n'est pas une utilisation valide du commentaire. Cela ne fonctionne que parce que goto ignore tous les arguments après le premier. La preuve en est facile, ce goto n'échouera pas non plus:

goto error1 handling the error

Mais tentative similaire

color 17            :: grey on blue

Échoue à exécuter la commande en raison de 4 arguments inconnus de la commande color : ::, grey, on, blue.

Cela ne fonctionnera que comme:

color 17     &      :: grey on blue

Donc, l'esperluette est inévitable.

12
répondu miroxlav 2017-07-07 11:14:13

Vous pouvez commenter quelque chose en utilisant :: ou REM:

your commands here
:: commenttttttttttt

Ou

your commands here
REM  commenttttttttttt

 

Pour le faire sur la même ligne de commande, vous devez ajouter une esperluette:

your commands here      & ::  commenttttttttttt

Ou

your commands here      & REM  commenttttttttttt

 

Remarque:

  • en utilisant :: dans la logique imbriquée(IF-ELSE, FOR boucles, etc...) provoquera une erreur. Dans ces cas, utilisez REM au lieu de cela.
2
répondu Pikamander2 2018-09-21 05:24:11