it-swarm.com.de

Was bedeutet :: (Doppelpunkt) in DOS-Batchdateien?

Ich fand dieses Programm http://baiyunmanor.com/blog/work/get-current-date-time-in-dos-batch-file/

Aber ich weiß nicht, was die Leitung macht

:: datetime.bat

am ende meinen?

45
user310291

:: Ist eine Beschriftung (auch in der Natur ungenau bekannt unter comment label ) kann in der Praxis nur als Kommentar betrachtet werden as REM ist, da es sich um ein Label handelt, das man nicht bekommen kann.

Es gibt jedoch einige nterschiede zwischen REM und ::. Die wichtigsten sind:

  • Mit ECHO ON Wird eine REM Zeile angezeigt, jedoch keine mit :: Kommentierte Zeile.
  • Ein :: Kann ein Zeilenendezeichen ausführen (dh ein ^ Am Ende einer Zeile, die mit :: Beginnt, bewirkt, dass die nächste Zeile auch ein Kommentar):

    :: This is a comment^
    echo but watch out because this line is a comment too
    
  • Labels und :: Haben eine spezielle Logik und können Probleme in Klammern verursachen - seien Sie vorsichtig, wenn Sie sie in () Verwenden. Beispiel:

    for %%D in (hi) do (
        echo Before...
        :: My comment
        :: Some other comment
        echo After...
    )
    

    Ausgänge:

    Before ...
    The system cannot find the drive specified.
    After...
    
56
acdcjunior

Eine Zeile, die mit einem Doppelpunkt beginnt, stellt ein ngültiges Label dar, das vom Befehlsprozessor ignoriert wird. Daher kann möglicherweise zum Einfügen eines Kommentars verwendet werden. Aus Gründen, die nicht zurückverfolgt werden können, verwenden viele Leute ::, um Kommentare in Stapeldateien einzufügen, aber Sie müssen sich bewusst sein, dass die Verwendung mehrere Fallstricke aufweist, die in dem in der Antwort von Koterpillar angegebenen Link beschrieben werden. Es scheint, dass die erste Verwendung von :: anstelle von REM wurde verwendet, um die Ausführung von Batch-Dateien auf langsamen Computern (z. B. Disketten) zu beschleunigen. Dieser Grund ist jedoch seit vielen Jahren keine gültige Rechtfertigung für die Verwendung von Doppelpunkt vor.

Jede Zeile, die eine ungültige Bezeichnung enthält, wird vom Befehlsprozessor ignoriert, und Sie können praktisch jedes Sonderzeichen verwenden, um eine ungültige Bezeichnung zu generieren. Beispielsweise:

@echo off

:~ This is a comment
:` This is a comment
:! This is a comment
:@ This is a comment
:# This is a comment
:$ This is a comment
:% This is a comment
:^ This is a comment
:& This is a comment
:* This is a comment
:( This is a comment
:) This is a comment
:_ This is a comment
:- This is a comment
:+ This is a comment
:= This is a comment
:{ This is a comment
:} This is a comment
:[ This is a comment
:] This is a comment
:| This is a comment
:\ This is a comment
:: This is a comment
:; This is a comment
:" This is a comment
:' This is a comment
:< This is a comment
:> This is a comment
:, This is a comment
:. This is a comment
:? This is a comment
:/ This is a comment

echo OK

Mit anderen Worten: Wenn Sie einen Kommentar einfügen und den Befehl REM nicht verwenden möchten (obwohl mir kein Grund dazu einfällt), stehen Ihnen 32 mögliche Zeichenkombinationen zur Verfügung. Warum sollten Sie genau dieses verwenden: ::? Nur weil es einige alte Programme gab, die vor 35 Jahren geschrieben wurden?

55
Aacini

Eine mit einem Doppelpunkt beginnende Zeile ist eine Bezeichnung, zu der Sie mit goto springen können:

goto end
:end

Eine Zeile, die mit einem Doppelpunkt beginnt, ist eine Bezeichnung, mit der Ausnahme, dass Sie nicht versehentlich dorthin springen können:

goto :end REM this doesn't work
::end

Aus diesem Grund wird ein Doppelpunkt zum Auskommentieren von Zeilen verwendet.

Quelle: http://www.robvanderwoude.com/comments.php

16
Koterpillar

Wie erwähnt von acdcjunior Labels und :: haben eine spezielle Logik und können Probleme in Klammerblöcken verursachen

Hier sind einige Beispiele

Probe 1

IF 1==1 (
  ::
)

Ausgabe von Probe 1

) was unexpected at this time.

Probe 2

IF 1==1 (
  ::
  ::
)

Ausgabe von Probe 2

The system cannot find the drive specified.
7

Der Doppelpunkt (:) ist eine Beschriftungsmarkierung und kann für erhaltene Anweisungen verwendet werden.

Einige Leute benutzen: auch als Kommentar, also ist ein Doppelpunkt einfach eine stilistische REM Anweisung

2
Preet Sangha