Question Comment "commenter" (ajouter un commentaire) dans un lot / cmd? [dupliquer]


Cette question a déjà une réponse ici:

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

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

  2. Je souhaite également ajouter des commentaires pour attirer leur attention spécifiquement sur les variables à mettre à jour dans le fichier batch avant de l'exécuter. Je vois que je peux utiliser REM. Mais il semble que c'est plus pour mettre à jour l'utilisateur avec le progrès après l'avoir exécuté.

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


640
2018-06-29 21:40


origine


Réponses:


le rem commande est en effet pour les commentaires. Il ne met pas fondamentalement à jour n'importe qui après l'exécution du script. Certains auteurs de script pourraient l'utiliser de cette façon au lieu de echocependant, parce que par défaut, l'interpréteur par lots imprimer chaque commande avant qu'elle ne soit traitée. Depuis rem les commandes ne font rien, il est prudent de les imprimer sans effets secondaires. Pour éviter d'imprimer une commande, préfixez-la avec @ou, pour appliquer ce paramètre au cours du programme, exécutez @echo off. (Ses echo off pour éviter d'imprimer d'autres commandes; la @ est d'éviter l'impression cette commande avant la prise d'effet de l'écho.)

Ainsi, 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

642
2018-06-29 21:49



your commands here :: commenttttttttttt

ou

your commands here REM commenttttttttttt

Remarques:

  • en utilisant ::  peut provoquer des erreurs différentes dans la logique imbriquée (IF-ELSE, FOR boucles, etc ...), et vous pouvez essayer d'utiliser le code-standard REM  dans la plupart des cas.

  • Dans certains cas, vous devrez peut-être ajouter & signe: & :: commenttttttttttt

p.s. Je ne sais pas pourquoi les inventeurs ne pouvaient pas trouver un meilleur symbole que REM .


713
2018-05-30 15:02



Non, les anciens fichiers de traitement par lots utilisent REM comme un commentaire. ECHO est la commande qui imprime quelque chose sur l'écran.

Pour "commenter" les sections du fichier que vous pourriez 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 lire plus sur ce site.

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


42
2018-06-29 21:46



Le :: au lieu de REM était de préférence utilisé dans les jours où les ordinateurs n'étaient pas très rapides. La ligne REM'ed est lue puis intériorisée. Les lignes :: 'ed sont ignorées tout le long. Cela pourrait accélérer votre code dans "les vieux jours". Plus loin après un REM vous avez besoin d'un espace, après :: vous n'avez pas.

Et comme dit dans le premier commentaire: vous pouvez ajouter des informations à toute ligne que vous ressentez le besoin de

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

Quant au saut de pièces. Mettre REM devant chaque ligne peut prendre beaucoup de temps. Comme mentionné à l'aide de GOTO pour passer des pièces est un moyen facile de sauter de gros morceaux de code. Veillez à définir: LABEL à l'endroit où vous souhaitez 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

27
2017-11-02 21:33



Commentaires sur plusieurs lignes

S'il y a un grand nombre de lignes que vous voulez commenter, il sera préférable de faire des commentaires sur plusieurs lignes plutôt que de commenter chaque ligne.

Le langage de lot n'a pas de blocs de commentaire, 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 Étiquette et: Étiquette pour faire des commentaires de bloc.

Ou, Si le bloc de commentaire apparaît à la fin du fichier de commandes, vous pouvez écrire EXIT à la fin du code, puis un nombre illimité 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...

Source des commentaires


21
2017-08-24 10:50



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

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

Explication:

& sépare deux commandes, donc dans ce cas color C est la première commande et :: set red font color est le deuxième.


Important:

Cette déclaration avec commentaire semble intuitivement correcte:

goto error1         :: handling the error

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

goto error1 handling the error

Mais tentative similaire

color 17            :: grey on blue

Echec de l'exécution de la commande en raison de 4 arguments inconnus du color commander: ::, grey, on, blue.

Cela ne fonctionnera que comme:

color 17     &      :: grey on blue

Donc, l'esperluette est inévitable.


9
2018-06-09 14:38