Wie mache ich Kommentare an einer Windows-Eingabeaufforderung?


Antworten:


90

REM ist der Standardweg:

REM this is a comment

Sie können auch die in Batch-Dateien häufig verwendete Doppelpunkt-Konvention verwenden:

:: another comment

Ein einzelner Doppelpunkt, gefolgt von einer Zeichenfolge, ist eine Bezeichnung, aber ein doppelter Doppelpunkt und alles, was danach steht, wird ignoriert. Man könnte argumentieren, dass dieses Formular besser lesbar ist als der REMBefehl.

Beachten Sie, dass diese beiden Methoden nur am Anfang einer Zeile funktionieren. Wenn Sie einem Befehl einen Kommentar hinzufügen möchten, können Sie diesen mit dem Befehlsverkettungszeichen ( &) wie folgt verwenden:

dir & REM a comment
dir &:: another one

2
Vielen Dank. Funktioniert das nur, wenn es das erste ist, auf das man stößt, anstatt so etwas zu tun dir :: comment?
Andrew Grimm

1
Zunächst ein nützlicher Link . Dann scheinen doppelte Doppelpunkte in Codeblöcken nicht zu funktionieren (Code in Klammern, wie in if/ forloops).
X-Yuri

@efotinis, Ist das remeigentlich ein Befehl? Wäre nicht ::besser, weil es selbst ignoriert wird?
Pacerier

@Pacerier, ja, es REMist ein tatsächlicher Befehl, aber er ist in CMD.EXE eingebettet, daher sollte er ziemlich effizient sein. Auf der anderen Seite ::kann es schneller sein, da alles bis zum Ende der Zeile ignoriert wird (z. B. wird nicht mit nach verketteten Befehlen gesucht &).
efotinis

2
Beachten Sie, dass die Verwendung von ::Code in einigen Fällen zu Fehlern führen kann, z. B. wenn es sich um die letzte Zeile in einem Codeblock handelt.
Bryc

16

Sie stellen Ihrem Kommentar das Wort REM voran.

REM This is a comment.

Wenn Sie jedoch möchten, dass Ihr Kommentar an Sie zurückgedruckt wird, sollten Sie ihn wiederholen:

echo This is a comment you'll see.

Akzeptieren als arbeiten, aber ich wäre nur ein bisschen
Andrew Grimm

5

Der REMBefehl merkt sich nur (dh sagt etwas als Kommentar), dass die Zeile nicht ausgeführt wird. Wenn sie jedoch @echo offnicht in der Batch - Datei wird diese Zeile echo noch auf den Bildschirm.

Um zu verhindern, dass diese Zeilen angezeigt werden, haben Sie drei Möglichkeiten.

  1. @Echo off zur Batch-Datei
    hinzufügen : Wenn Sie alle Befehle sowie die REM-Zeilen ausblenden möchten, fügen Sie @echo off als erste Zeile in der Batch-Datei hinzu.
  2. Ändern Sie REM in @REM :
    Wenn die Befehle beim Ausführen der Batchdatei angezeigt werden sollen, die REM-Zeilen jedoch ausgeblendet werden sollen, geben Sie @REM anstelle von REM ein.
  3. Verwenden Sie: :( (dh ungültiges Label ) anstelle von REM :
    Schließlich verhindert die Verwendung des Befehls :: als Kommentar anstelle von REM auch das Echo der Kommentarzeile.

Quelle


2

Ich glaube die antwort von bernhard ist falsch.

Zumindest durch Sieg 7,

rem comment

in einer Batch-Datei wird in der Ausgabe gedruckt. Verwenden Sie, um das Drucken zu unterdrücken

@ rem comment

oder

@rem comment

Gleiches gilt für andere Befehle, die standardmäßig auf der Konsole wiedergegeben werden.


Der Befehl REM commentdruckt keine Ausgabe auf den Bildschirm. Öffnen Sie für eine Live-Demonstration eine Eingabeaufforderung und echo commentführen Sie den Befehl aus rem comment. Beachten Sie, dass der echoBefehl die Ausgabe auf dem Bildschirm druckt, während der remBefehl dies nicht tat.
Ich sage Reinstate Monica

Ich verwende @REM commentin meinen Batch-Skripten immer, um zu vermeiden, dass sie angezeigt werden. Ich hätte vorgeschlagen, Bernards Antwort so zu bearbeiten, dass @ vor REM in Stapelskripten verwendet wird, um zu vermeiden, dass es angezeigt wird, anstatt eine ganz neue Antwort zu veröffentlichen.
Robin Hood

3
@RobinHood, Batch-Dateien geben standardmäßig alle Befehle aus (zu Debugging-Zwecken), daher ist es üblich, sie mit zu beginnen @ECHO OFF & SETLOCAL .... Auf diese Weise müssen Sie nicht @alle Zeilen voranstellen , und Sie können problemlos darauf umschalten, ECHO ONwenn etwas schief geht und Sie einige Tests durchführen müssen.
efotinis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.