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.
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!)
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?
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
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 doncREM
là ou échapper en utilisant^
caractère, ex.^(
et^)
Dans certains cas (si vous l'utilisez inline), vous devrez peut-être ajouter & signe:
& :: commenttttt
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.
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
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...
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.
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, utilisezREM
au lieu de cela.