J'ai trouvé ce programme http://baiyunmanor.com/blog/work/get-current-date-time-in-dos-batch-file/
Mais je ne sais pas ce que fait la ligne
:: datetime.bat
à la fin signifie?
::
est une étiquette (également, inexactement, connue dans la nature par étiquette de commentaire ) peut être, en pratique, considérée comme un commentaire tout comme REM
est, car il s'agit d'une étiquette "non accessible".
Il y a quelques différences entre REM
et ::
, bien que. Les principaux sont:
ECHO ON
une ligne REM
est affichée mais pas une ligne commentée avec ::
UNE ::
peut exécuter un signe de fin de ligne (c'est-à-dire un ^
à la fin d'une ligne commençant par ::
fait la ligne suivante aussi un commentaire):
:: This is a comment^
echo but watch out because this line is a comment too
Étiquettes et ::
ont une logique spéciale et peuvent causer des problèmes dans les blocs entre parenthèses - faites attention lorsque vous les utilisez à l'intérieur (
)
. Exemple:
for %%D in (hi) do (
echo Before...
:: My comment
:: Some other comment
echo After...
)
Les sorties:
Before ...
The system cannot find the drive specified.
After...
Une ligne commençant par deux points représente un étiquette non valide qui est ignoré par le processeur de commandes, donc peut être utilisé pour insérer un commentaire. Pour des raisons qui ne peuvent être retracées, de nombreuses personnes utilisent ::
pour insérer des commentaires dans les fichiers batch, mais vous devez être conscient qu'il existe plusieurs pièges dans son utilisation qui sont décrits dans le lien donné dans la réponse de Koterpillar. Il semble que la première utilisation de ::
au lieu de REM
command avait pour but d'accélérer l'exécution des fichiers Batch sur les machines lentes (ie: disquettes), mais cette raison n'est pas une justification valable pour l'utilisation de deux points depuis de nombreuses années depuis.
Toute ligne contenant une étiquette non valide sera ignorée par le processeur de commandes et vous pouvez utiliser pratiquement n'importe quel caractère spécial pour générer une étiquette non valide. Par exemple:
@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
En d'autres termes: si vous souhaitez insérer un commentaire et que vous ne souhaitez pas utiliser la commande REM
(bien que je ne trouve aucune raison de le faire), vous avez 32 combinaisons de caractères possibles pour le faire. Pourquoi utiliser précisément celui-ci: ::
? Tout simplement parce que certains anciens programmes écrits il y a 35 ans l'ont fait?
Une ligne commençant par deux points est une étiquette à laquelle vous pouvez accéder avec goto
:
goto end
:end
Une ligne commençant par un double-point est une étiquette, sauf que vous ne pouvez pas, même accidentellement, y accéder:
goto :end REM this doesn't work
::end
Ainsi, les deux points sont utilisés pour commenter les lignes.
Comme mentionné par acdcjunior Étiquettes et ::
a une logique spéciale et peut provoquer des problèmes dans les blocs de parenthèses
Voici quelques exemples
Échantillon 1
IF 1==1 (
::
)
Sortie de l'échantillon 1
) was unexpected at this time.
Échantillon 2
IF 1==1 (
::
::
)
Sortie de l'échantillon 2
The system cannot find the drive specified.
Le deux-points (:) est un marqueur d'étiquette et peut être utilisé pour obtenir des instructions.
Certaines personnes l'utilisent: en tant que commentaire, un double-point est simplement une instruction stylistique REM