batch-file
Kommentare in Batchdateien
Suche…
Einführung
Kommentare werden verwendet, um Informationen in einem Batch-Skript anzuzeigen.
Syntax
REM
& REM
::
& ::
Gehe zu: Label
Comments. You can also use |>< ,etc.
:Etikette
Verwenden von REM für Kommentare
REM This is a comment
-
REM
ist der offizielle Kommentarbefehl.
Labels als Kommentare verwenden
::This is a label that acts as a comment
Der oben gezeigte Doppelpunkt ::
Kommentar ist nicht als Kommentarbefehl dokumentiert, sondern es handelt sich um einen Sonderfall einer Beschriftung, die als Kommentar fungiert.
Achtung : Wenn Labels als Kommentare innerhalb eines Klammer-Codeblocks oder for
Befehle verwendet werden, erwartet der Befehlsprozessor, dass auf jedes Label mindestens ein Befehl folgt. Wenn also ein Sprung zum Label ausgeführt wird, muss etwas ausgeführt werden.
Die cmd
Shell versucht, die zweite Zeile auszuführen, selbst wenn sie als Label formatiert ist (und dies verursacht einen Fehler ):
(
echo This example will fail
:: some comment
)
Wenn Sie in geklammerten Codeblöcken arbeiten, ist die Verwendung von REM für alle Kommentarzeilen definitiv sicherer.
Verwendung von Variablen als Kommentar
Es ist auch möglich, Variablen als Kommentare zu verwenden. Dies kann nützlich sein, um die Ausführung von Befehlen bedingt zu verhindern:
@echo off
setlocal
if /i "%~1"=="update" (set _skip=) Else (set _skip=REM)
%_skip% copy update.dat
%_skip% echo Update applied
...
Bei Verwendung des obigen Code-Snippets in einer Batchdatei werden die mit %_skip%
beginnenden Zeilen nur ausgeführt, wenn die Batchdatei mit update
als Parameter aufgerufen wird.
Kommentare blockieren
Das Batch-Dateiformat verfügt nicht über eine Blockkommentar-Syntax, es gibt jedoch eine einfache Problemumgehung.
Normalerweise wird jede Zeile einer Batchdatei gelesen und dann vom Parser ausgeführt. Mit der goto
Anweisung können Sie jedoch einen Klartextblock überspringen (der als Blockkommentar verwendet werden kann):
@echo off
goto :start
A multi-line comment block can go here.
It can also include special characters such as | >
:start
Da der Parser niemals die Zeilen zwischen der goto :start
Anweisung und dem :start
Label sieht, kann er beliebigen Text enthalten (einschließlich Steuerzeichen, ohne dass ein Escape erforderlich ist), und der Parser gibt keinen Fehler aus.
Kommentieren Sie die Codezeile
Um die gleiche Zeile wie den Code zu kommentieren, können Sie &::
oder &rem
. Sie können auch &&
oder ||
&
ersetzen.
Beispiel:
@echo off
echo This is a test &::This is a comment
echo This is another test &rem This is another comment
pause
Eine Kuriosität : SET
Befehl erlaubt eingeschränkte Inline-Kommentare ohne &rem
:
set "varname=varvalue" limited inline comment here
Einschränkungen:
- Syntax mit Anführungszeichen
set "varname=varvalue"
oderset "varname="
, - Ein Inline-Kommentar darf kein Anführungszeichen enthalten.
- beliebige
cmd
giftigecmd
| < > &
muss ordnungsgemäß als^| ^< ^> ^&
, - Klammern
( )
müssen ordnungsgemäß als^( ^)
innerhalb eines Klammercodeblocks mit Escapezeichen versehen werden.
Batch- und WSF-Hybridkommentar
<!-- : Comment
Dies funktioniert sowohl mit Batch-Skript als auch mit WSF. Das schließende Tag ( -->
) funktioniert nur in WSF.
Code | Erfolgreich sowohl im Batch als auch im WSF? |
---|---|
<!--: Comment | Wahr |
<!--: Comment --> | False - Das schließende Tag funktioniert nur für WSF |
--> | Falsch |