J’ai un fichier de commandes qui exécute plusieurs scripts python qui modifient les tables.
Je veux que les utilisateurs commentent les 1 à 2 scripts python qu’ils ne veulent pas exécuter, plutôt que de les supprimer du fichier de commandes (pour que l’utilisateur suivant sache que ces scripts existent en tant qu’options!)
Je souhaite également append des commentaires pour attirer leur attention 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 ce soit plus pour mettre l’utilisateur à jour après l’avoir exécuté.
Existe-t-il une syntaxe pour append de manière plus appropriée un commentaire?
La commande rem
est en effet pour les commentaires. Il ne met à jour de manière inhérente personne après avoir exécuté le script. Certains auteurs de script peuvent l’utiliser de cette manière au lieu de l’ echo
, car par défaut, l’interpréteur de commandes imprimera chaque commande avant son traitement. Comme les commandes rem
ne font rien, il est prudent de les imprimer sans effets secondaires. Pour éviter d’imprimer une commande, ajoutez-lui un préfixe ou, pour appliquer ce paramètre tout au long du programme, exécutez @echo off
. (Il est echo off
pour éviter d’imprimer d’autres commandes; le @
évite d’imprimer cette commande avant que le paramètre d’écho ne prenne effet.)
Donc, dans votre fichier de commandes, 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
using ::
peut provoquer des erreurs différentes dans la logique nestede (boucles IF-ELSE
, FOR
, etc …), et vous pouvez essayer d’utiliser le REM
standard dans la plupart des cas.
Dans certains cas, vous devrez peut-être append et signer: & :: commenttttttttttt
Non, les anciens fichiers batch utilisent REM
comme commentaire. ECHO
est la commande qui imprime quelque chose à 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 de commandes sont une relique des temps passés, ils sont maladroits et laids.
Vous pouvez en lire plus sur ce site .
EDIT: modification de l’exemple pour qu’il contienne les éléments que vous recherchez apparemment.
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 est lue et ensuite enregistrée. :: ‘ed line 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 append des informations à toute ligne dont vous ressentez le besoin
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é en utilisant GOTO pour ignorer des parties est un moyen facile de sauter de gros morceaux de code. Veillez à définir un: LABEL au point 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
Si vous souhaitez commenter un grand nombre de lignes, il serait préférable de faire des commentaires multi-lignes plutôt que de commenter chaque ligne.
La langue du lot ne contient pas de bloc de commentaires, bien qu’il existe des moyens de réaliser cet effet.
GOTO EndComment1 This line is comment. And so is this line. And this one... :EndComment1
Vous pouvez utiliser GOTO
Label et: Label pour créer des commentaires de bloc.
Ou, si le bloc de commentaires apparaît à la fin du fichier de commandes, vous pouvez écrire EXIT
à la fin du code, puis un nombre quelconque 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
& :: 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 la color C
est la première commande et :: set red font color
est la deuxième.
Cette déclaration avec commentaire est intuitive:
goto error1 :: handling the error
mais ce n’est pas une utilisation valide du commentaire. Cela fonctionne uniquement parce que goto
ignore tous les arguments passés après le premier. La preuve est facile, ce goto
n’échouera pas non plus:
goto error1 handling the error
Mais tentative similaire
color 17 :: grey on blue
échoue à l’exécution de la commande en raison de 4 arguments inconnus à la commande de color
: ::
, grey
, on
, blue
.
Cela ne fonctionnera que comme:
color 17 & :: grey on blue
Donc, l’esperluette est inévitable.