Cosa significa :: (doppio punto) nei file batch DOS?

Ho trovato questo programma http://baiyunmanor.com/blog/work/get-current-date-time-in-dos-batch-file/

Ma non so cosa fa la linea

:: datetime.bat 

alla fine significa?

:: (chiamato anche etichetta di commento ) è un commento proprio come REM .

Ci sono alcune differenze tra loro. I principali sono:

  • Con ECHO ON viene mostrata una linea REM ma non una riga commentata con ::
  • A :: può eseguire un segno di fine riga (ovvero, ^ alla fine di una riga che inizia con :: rende la riga successiva anche un commento).
  • Etichette e :: hanno una logica speciale e possono causare problemi nei blocchi di parentesi – fare attenzione quando li si usa all’interno ( ) .

Una linea che inizia in doppio punto rappresenta un’etichetta non valida che viene ignorata dall’elaboratore dei comandi, quindi può essere utilizzata per inserire un commento. Per motivi che non possono essere rintracciati, molte persone usano :: per inserire commenti nei file Batch, ma devi essere consapevole del fatto che ci sono molte insidie ​​nel suo uso che sono descritte nel link fornito nella risposta di Koterpillar. Sembra che il primo utilizzo di :: invece del comando REM fosse allo scopo di accelerare l’esecuzione di file Batch in macchine lente (es .: floppy disk), ma quella ragione non è una giustificazione valida per l’uso del doppio colon dal molti anni fa.

Qualsiasi riga che contiene un’etichetta non valida verrà ignorata dal processore dei comandi e sarà ansible utilizzare praticamente qualsiasi carattere speciale per generare un’etichetta non valida. Per esempio:

 @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 

In altre parole: se vuoi inserire un commento e non vuoi usare REM comando REM (anche se non riesco a pensare ad alcun motivo per farlo), hai 32 possibili combinazioni di caratteri per farlo. Perché dovresti usare proprio questo: :: ? Solo perché alcuni vecchi programmi scritti 35 anni fa l’hanno fatto?

Una linea che inizia con due punti è un’etichetta a cui puoi saltare con goto :

 goto end :end 

Una linea che inizia con un doppio punto è un’etichetta, tranne che non puoi, anche accidentalmente, saltare ad essa:

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

Quindi, il doppio colon viene usato per commentare le righe.

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

Come accennato da acdcjunior Labels e :: hanno una logica speciale e possono causare problemi tra parentesi

Qui ci sono un paio di campioni

Esempio 1

 IF 1==1 ( :: ) 

Uscita del campione 1

 ) was unexpected at this time. 

Campione 2

 IF 1==1 ( :: :: ) 

Uscita del campione 2

 The system cannot find the drive specified. 

Il colon (:) è un marker di etichetta e può essere utilizzato per ottenere istruzioni.

Alcune persone usano: anche come commento un double colon è semplicemente una dichiarazione REM stilistica