HOWTO · Batch
Kommentare im Batch-Skript hinzufügen
Dieses Tutorial bietet eine umfassende Anleitung zum Hinzufügen von Kommentaren in Batch-Skripten. Lernen Sie die verfügbaren Methoden kennen, darunter den REM-Befehl und Doppelpunkte, und erfahren Sie, warum GOTO — das die Ausführung umleitet — keine Kommentarmethode ist. Entdecken Sie bewährte Verfahren zum Schreiben wirksamer Kommentare, die Ihren Code für Sie selbst und andere verständlicher machen.
Auf dieser Seite
Für Kommentare in einer Windows-Batchdatei (.bat oder .cmd) ist REM die klarste und zuverlässigste Wahl. Eine Zeile, die mit :: beginnt, wird ebenfalls häufig als Kommentar verwendet, aber als Marke interpretiert und kann je nach Position Probleme verursachen. Beide Formen können die Absicht hinter einem Befehl erklären; sie ändern nicht, was das Skript tun soll.
Eine Batch-Kommentarform wählen: REM oder ::
REM ist ein Befehl, der einen Kommentar kennzeichnet. Er ist die Standardwahl und eignet sich besonders, wenn ein Kommentar innerhalb einer Befehlsgruppe in Klammern steht. Die Form :: ist eine markenähnliche Schreibweise: CMD behandelt sie als Marke und nicht als speziellen Kommentar-Befehl. Sie ist für alleinstehende Hinweise knapp, doch Marken können die Blockanalyse und den Kontrollfluss beeinflussen. Für vorhersehbares Verhalten ist REM die bessere Wahl, wenn die umgebende Syntax komplex ist.
Beide Formen gelten speziell für Windows CMD Batch. Sie sind keine portablen Kommentarsyntaxen für PowerShell, Bash oder andere Shells. Setze Kommentare nach Möglichkeit in eigene Zeilen und beschreibe knapp, warum ein Befehl nötig ist oder auf welcher Annahme er beruht.
Einzeilige Kommentare mit REM oder :: hinzufügen
Das folgende Beispiel für Windows CMD zeigt ein kleines, funktionsfähiges Muster, das du als comments.bat speichern kannst. Vor den Befehlen steht jeweils eine Zeile mit REM und eine mit ::, sodass sich beide Formen im Kontext vergleichen lassen. Das Beispiel wurde erfolgreich ausgeführt und gab die beiden unten gezeigten Statuszeilen aus. Die Beschriftungen in den unveränderten Code- und Ausgabeblöcken bleiben auf Englisch.
@echo off
REM Describe the next action for the person maintaining this file.
echo Preparing the report
:: This label-like line is commonly used as a short note.
echo Report ready
Preparing the report
Report ready
Erreicht CMD einen REM-Befehl, ignoriert es den Kommentartext als Anweisung. Eine ::-Zeile wird als Marke behandelt und häufig für denselben optischen Zweck verwendet. Die Befehle nach den jeweiligen Hinweisen werden weiterhin ausgeführt. Der Text in Kommentaren sollte nicht den Eindruck erwecken, das Skript habe etwas erledigt, was es tatsächlich nicht getan hat.
Kommentare in Befehlsgruppen und nach Befehlen richtig platzieren
Ein Kommentar kann zwischen Befehlen stehen. Zum Beispiel kann eine REM-Zeile zwischen einer IF-Zeile und den darauf folgenden Befehlen stehen. Verwende innerhalb einer Klammergruppe REM in einer eigenen Zeile. Achte darauf, dass der Kommentartext keine Zeichen enthält, die die Analyse der gesamten Gruppe durch CMD beeinflussen können, insbesondere keine unausgeglichenen Klammern. Beim Analysieren eines Befehlsblocks in Klammern kann CMD %name% expandieren, auch wenn der Ausdruck in einer REM-Zeile steht. Der Kommentar wird zwar verworfen und nicht angezeigt, die Expansion kann aber trotzdem die Analyse des Blocks verändern. Halte solche Hinweise deshalb schlicht und vermeide Prozent-Ausdrücke darin.
Für einen kurzen Kommentar nach einem Befehl trennst du ihn mit & ab und verwendest REM, zum Beispiel: echo Preparing the report & REM this command prints the status. Das kaufmännische Und startet einen weiteren Befehl in derselben Zeile. Es macht aber nicht jede Kommentarform in jedem Kontext sicher. Hänge :: nicht an einen Befehl an. Setze auch keinen Kommentar hinter einen IF-Befehl, wenn dessen ELSE-Zweig weiterhin zugeordnet bleiben muss. Wenn eine Zeile bedingte Syntax, einen Befehlstrenner oder eine Klammergruppe enthält, setze den Hinweis stattdessen in eine eigene Zeile. So bleibt die Befehlsstruktur leichter lesbar und es gibt weniger Überraschungen bei der Analyse.
Mehrzeilige Hinweise sicher schreiben
Batch hat keinen nativen Begrenzer für Blockkommentare. Am einfachsten schreibst du einen mehrzeiligen Hinweis, indem du jede Zeile mit REM (oder bei einfachen, alleinstehenden Hinweisen mit ::) beginnst. Rund um Befehlsgruppen ist es besser, REM zu wiederholen: Es ist ein echter Befehl, dessen Zweck eindeutig ist.
GOTO leitet die Ausführung zu einer Marke um und verändert damit den Kontrollfluss des Skripts; es ist keine Kommentarsyntax. Verwende es nicht, um einen Block als Kommentar zu kennzeichnen. Wiederhole für einen mehrzeiligen Hinweis stattdessen REM in jeder Zeile.
Im Allgemeinen ist REM die passende Wahl. Verwende :: für alleinstehende, markenähnliche Hinweise, wenn die umgebende Struktur einfach ist, und setze Kommentare bei bedingten oder gruppierten Befehlen in eigene Zeilen. Diese Beispiele gelten für Windows-CMD-Batchdateien und sollten nicht als Kommentarsyntax in andere Shells übernommen werden.