Ich habe eine Batch-Datei, die mehrere Python-Skripte ausführt, die Tabellenänderungen vornehmen.
Ich möchte, dass Benutzer die 1-2 Python-Skripte auskommentieren, die sie nicht ausführen möchten, anstatt sie aus der Batch-Datei zu entfernen (damit der nächste Benutzer weiß, dass diese Skripte als Optionen vorhanden sind!).
Ich möchte auch Kommentare hinzufügen, um sie auf die Variablen aufmerksam zu machen, die sie in der Batch-Datei aktualisieren müssen, bevor sie ausgeführt werden. Ich sehe, dass ich verwenden kann
REM
. Es sieht jedoch so aus, als ob dies eher dazu dient, den Benutzer nach dem Ausführen mit dem Fortschritt zu aktualisieren.
Gibt es eine Syntax zum angemesseneren Hinzufügen eines Kommentars?
batch-file
cmd
comments
comment-conventions
user1397044
quelle
quelle
Rem Sth
Befehl verwenden oder dieses Zeichen verwenden::: Sth
Antworten:
Der
rem
Befehl ist in der Tat für Kommentare. Nach dem Ausführen des Skripts wird niemand von Natur aus aktualisiert. Einige Skriptautoren verwenden es jedoch möglicherweise auf diese Weiseecho
, da der Batch-Interpreter standardmäßig jeden Befehl druckt, bevor er verarbeitet wird. Darem
Befehle nichts bewirken, ist es sicher, sie ohne Nebenwirkungen zu drucken. Um das Drucken eines Befehls zu vermeiden, stellen Sie ihm ein Präfix voran@
oder führen Sie diese Einstellung im gesamten Programm aus@echo off
. (echo off
Um@
zu vermeiden, dass weitere Befehle gedruckt werden; dies soll vermieden werden, dass dieser Befehl gedruckt wird , bevor die Echoeinstellung wirksam wird.)In Ihrer Batch-Datei können Sie also Folgendes verwenden:
quelle
REM This whole line is a comment
@echo off :: This comment is inline
#
Kommentaren verwendet, da es#
möglicherweise nicht in allen Shells, die Configure unterstützen soll, ein gültiger Kommentarbezeichner ist. siehe Zeile 3.Verwenden Sie
::
oderREM
ABER (wie die Leute bemerkt haben):
&
Zeichen hinzufügen :your commands here & :: commenttttttttttt
IF/ELSE
,FOR
Schleifen usw.) verwenden,REM
weil::
ein Fehler auftritt.::
kann innerhalb scheiternsetlocal ENABLEDELAYEDEXPANSION
quelle
cd "C:\Folder" ::this throws a syntax error
git add :: blah this is not a comment
mit „fatal: Pfadangabe‚blah‘brachte keine Dateien gefunden , die “&
zwischen dem Code und dem Kommentar einfügen::
. Öffnen Sie zur Veranschaulichung die Eingabeaufforderung cmd und führen Siedir ::blah
sie aus, ohne den Inhalt aufzulisten.
und mit ihnen zu vergleichen.dir & ::blah
::
wird Fehler Skripte mitsetlocal ENABLEDELAYEDEXPANSION
undfor
Nein, einfache alte Batch-Dateien werden
REM
als Kommentar verwendet.ECHO
ist der Befehl, der etwas auf dem Bildschirm druckt.Zum "Auskommentieren" von Abschnitten der Datei, die Sie verwenden können
GOTO
. Ein Beispiel für all diese Befehle / Techniken:Was kann ich sagen? Batch-Dateien sind ein Relikt vergangener Zeiten, sie sind klobig und hässlich.
Sie können mehr auf dieser Website lesen .
BEARBEITEN: Das Beispiel wurde ein wenig geändert, damit es die Elemente enthält, nach denen Sie anscheinend suchen.
quelle
Das :: anstelle von REM wurde vorzugsweise in den Tagen verwendet, in denen Computer nicht sehr schnell waren. REM'ed-Zeilen werden gelesen und dann ignoriert. :: 'ed Zeilen werden vollständig ignoriert. Dies könnte Ihren Code in "den alten Tagen" beschleunigen. Darüber hinaus benötigen Sie nach einem REM ein Leerzeichen, nach :: nicht.
Und wie im ersten Kommentar gesagt: Sie können jeder Zeile, die Sie benötigen, Informationen hinzufügen
Wie für das Überspringen von Teilen. Das Platzieren von REM vor jeder Zeile kann ziemlich zeitaufwändig sein. Wie bereits erwähnt, ist das Überspringen von Teilen mit GOTO eine einfache Möglichkeit, große Codeteile zu überspringen. Stellen Sie sicher, dass an der Stelle, an der der Code fortgesetzt werden soll, ein: LABEL festgelegt wird.
quelle
::
undrem
gleichermaßen zu tun .\n
und beginnt dann erneut zu analysieren [Zitieren erforderlich]Mehrzeilige Kommentare
Wenn es eine große Anzahl von Zeilen gibt, die Sie auskommentieren möchten, ist es besser, wenn Sie mehrzeilige Kommentare abgeben können, anstatt jede Zeile auskommentieren.
Siehe diesen Beitrag von Rob van der Woude zu Kommentarblöcken :
quelle
if
anstelle vongoto
stackoverflow.com/q/9074476/995714 ss64.com/vb/syntax-hybrid.html stackoverflow.com/a/34512715/995714Kommentare mit Befehlen in dieselbe Zeile setzen: use
& :: comment
Erläuterung:
&
trennt zwei Befehle , ist also in diesem Fallcolor C
der erste und:: set red font color
der zweite Befehl .Wichtig:
Diese Aussage mit Kommentar sieht intuitiv richtig aus:
Es ist jedoch keine gültige Verwendung des Kommentars. Es funktioniert nur, weil
goto
alle Argumente nach dem ersten ignoriert werden. Der Beweis ist einfach, auch diesgoto
wird nicht scheitern:Aber ähnlicher Versuch
Die Ausführung des Befehls schlägt aufgrund von 4 Argumenten fehl, die dem nicht bekannt sind
color
Vollstreckungsbefehl:::
,grey
,on
,blue
.Es wird nur funktionieren als:
Das kaufmännische Und ist also unvermeidlich.
quelle
Sie können etwas auskommentieren mit
::
oderREM
:oder
Um dies in derselben Zeile wie ein Befehl auszuführen, müssen Sie ein kaufmännisches Und hinzufügen:
oder
Hinweis:
::
in verschachtelter Logik (IF-ELSE
,FOR
Schleifen usw.) führt zu einem Fehler. Verwenden Sie in diesen FällenREM
stattdessen.quelle
@Rado
wurde zu diesem Zeitpunkt als Antwort zusammengeführt, und danke dafür, nur ich habe ein anderes Styling als Antwort bevorzugt und ein anderes Styling verwendet.Dies ist ein altes Thema und ich möchte hier mein Verständnis hinzufügen, um das Wissen über dieses interessante Thema zu erweitern.
Der Hauptunterschied zwischen REM und :: ist:
REM ist selbst ein Befehl, während :: NICHT ist.
Wir können :: als Token behandeln, das, sobald der CMD-Parser auf das erste nicht leere Leerzeichen in einer Zeile stößt, dieses :: Token ist, einfach die gesamte Zeile überspringt und die nächste Zeile liest. Aus diesem Grund sollte auf REM mindestens ein Leerzeichen folgen, um als Kommentar für die Zeile fungieren zu können, während :: kein Leerzeichen dahinter benötigt.
Dass REM selbst ein Befehl ist, lässt sich am besten anhand der folgenden FOR- Syntax verstehen
Die grundlegende FOR-Syntax lautet wie folgt
Hier
<Command>
kann ein beliebiger gültiger Befehl sein. Wir können also die folgende gültige Befehlszeile wierem
einen Befehl schreibenWir können jedoch die folgende Zeile NICHT schreiben, da dies
::
kein Befehl istquelle
::
ist es ein (ungültiges) Etikett (was sein Verhalten erklärt) und sollte daher nicht verwendet werden (obwohl es immer noch recht häufig ist)Mit dieser Syntax können Sie am Ende einer Batchdatei Kommentare hinzufügen:
Stellen Sie nur sicher, dass Sie niemals schließende Klammern verwenden.
Zuschreibungen: Leo Guttirez Ramirez unter https://www.robvanderwoude.com/comments.php
quelle