Commentaires sur plusieurs lignes dans le fichier de commandes DOS
J'ai écrit énorme fichier de commandes MS-DOS. Pour tester ce fichier de commandes j'ai besoin d'exécuter certaines lignes et que vous voulez masquer/commentaire restants.
J'ai quelques lignes de commentaires commençant par :: donc je ne peux pas utiliser :: plus il sera de brouiller tous les commentaires.
Toute aide dans ce domaine sera appréciée.
Merci d'avance,
Jay
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
goto
de sauter sur le code.REM
lignes comme les lignes de commentaire, il fait la sortie obscurSi vous souhaitez ajouter REM au début de chaque ligne au lieu d'utiliser GOTO, vous pouvez utiliser Notepad++ pour le faire facilement en suivant ces étapes:
Répétez les étapes de décommenter
Ctrl-Q
, cliquez dansNotepad++
:Edit -> Comment/Uncomment
.Tandis que le
goto
solution est une bonne option, il ne fonctionnera pas à l'intérieur de crochets (y compris POUR les et SI des commandes).Mais cette volonté. Bien que vous devez être prudent à propos de la fermeture crochets et syntaxe non valide pourFOR
etIF
commandes, car ils seront analysés.Mise à jour
La mise à jour dans le dbenham de l' réponse m'a donné quelques idées.
La première il y a deux cas différents où on peut avoir besoin commentaires multilignes - dans un support contexte où GOTO ne peut pas être utilisé à l'extérieur.
À l'intérieur des crochets contexte, nous pouvons utiliser un autre entre crochets s'il y a une condition qui empêche l'exécution de code.Si le code thede va encore être analysé
et certaines erreurs de syntaxe sera détecté (
FOR
,IF
,mal parenthèses fermées, mauvais paramètre d'extension ..).Donc, si c'est possible, il est préférable d'utiliser GOTO.S'il n'est pas possible de créer une macro/variable utilisée comme une étiquette mais il est possible d'utiliser des macros pour la fixation de commentaires.Encore deux trucs peuvent être utilisés font le GOTO
commentaires plus symétrique et plus agréable (au moins pour moi). Pour cela, je vais utiliser deux tours - 1) vous pouvez mettre un seul symbole en face d'un label et goto pourrez encore
pour le trouver (je n'ai aucune idée de pourquoi est-ce.Mon guues il est à la recherche d'un lecteur). 2) vous pouvez mettre un seul
:
à la fin d'un nom de variable et d'un remplacement/subtring fonctionnalité sera pas déclenchée (même sous activé les extensions). Qui combiné avec les macros pour les équerres de commentaires
faire les deux cas, à regarder de près les mêmes.
Donc, ici, sont les exemples (dans l'ordre que j'aime le plus):
Avec rectangulaire crochets:
Avec accolades:
Avec parenthèses:
Mélange entre powershell et C styles (
<
ne peut pas être utilisé parce que la redirection est avec plus de prio.*
ne peut pas être utilisé en raison de la%*
) :À emphase c'est un commentaire de la pensée, il n'est pas si court):
rem.||(
ourem^ (
à la place. L'intention est un peu plus clair. Voir ma réponse mis à jour.%rem:%
+%:rem%
formulaire de trop pour le rendre plus évident, mais il perdra de son charme.Ou seulement slash pour se rapprocher du style C...Une autre option est de joindre les lignes indésirables dans un bloc if qui ne peut jamais être vrai
Bien sûr, rien dans le si le bloc sera exécuté, mais il sera analysée. Si vous ne pouvez pas avoir tout syntaxe non valide à l'intérieur. Aussi, le commentaire ne peut pas contenir de
)
à moins qu'il s'est échappé ou d'être cité. Pour ces raisons, il a accepté GOTO solution est plus fiable. (Le GOTO solution peut également être plus rapide)Mise à jour 2017-09-19
Ici est un cosmétique amélioration de pdub GOTO solution. Je définis une simple variable d'environnement "macro" qui rend le GOTO commentaire syntaxe un peu mieux se documenter. Bien qu'il est généralement recommandé que :les étiquettes sont uniques à l'intérieur d'un script de commandes, il est vraiment OK pour incorporer plusieurs commentaires de ce genre dans le même lot de script.
Ou vous pouvez utiliser l'une de ces variantes de npocmaka de la solution. L'utilisation de REM au lieu de se BRISER rend l'intention un peu plus clair.
@jeb
Et après l'utilisation de ce, le stderr semble être inaccessible
Pas, essayez ceci:
Mais pourquoi ça marche?
désolé, je réponds à la question en français:
( la redirection par 3 " > hne spécial car elle persiste, on va l'utiliser verser capturer le flux des erreurs 2> hne va le transformateur en un flux persistant à l''ade de 3> ceci va
nous permettre d'avoir une gestion des erreur pour tout notre environnement de script..par la suite si on veux recuperer le flux "stderr' il faut faire une autre redirection du poignée 2> au poignée 1> qui n'est autre que la console.. )
essayez ceci: