このプログラムを見つけました http://baiyunmanor.com/blog/work/get-current-date-time-in-dos-batch-file/
しかし、私は行が何をするのかわかりません
:: datetime.bat
最後に意味ですか?
::
はラベルです(不正確にも、comment labelで知られています)、実際には、コメントと見なすことができます。 REM
は、「goto-able」ラベルであるためです。
ただし、REM
と::
の間には違いがあります。主なものは次のとおりです。
ECHO ON
では、REM
行が表示されますが、::
でコメントされた行は表示されません::
は行末キャレットを実行できます(つまり、^
で始まる行の末尾にある::
は、次の行を作成します()コメント) :
:: This is a comment^
echo but watch out because this line is a comment too
ラベルと::
には特別なロジックがあり、括弧ブロックで問題を引き起こす可能性があります-(
)
内で使用する場合は注意してください。例:
for %%D in (hi) do (
echo Before...
:: My comment
:: Some other comment
echo After...
)
出力:
Before ...
The system cannot find the drive specified.
After...
二重コロンで始まる行は、コマンドプロセッサによって無視される無効なラベルを表すため、コメントの挿入にmayを使用します。追跡できない理由により、多くの人が::
を使用してバッチファイルにコメントを挿入しますが、Koterpillarの回答に記載されているリンクで説明されているいくつかの落とし穴があることに注意する必要があります。 REM
コマンドの代わりに::
を最初に使用したのは、遅いマシン(つまり、フロッピーディスク)でのバッチファイルの実行を高速化する目的だったようですが、その理由は有効ではありません何年も前から二重コロンを使用する理由。
無効なラベルを含む行はコマンドプロセッサによって無視され、実質的に特殊文字を使用して無効なラベルを生成できます。例えば:
@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
言い換えると、コメントを挿入したい場合にREM
コマンドを使用したくない場合(そうする理由は考えられませんが)、32の可能な文字の組み合わせがあります。これを正確に使用する必要がある理由:::
? 35年前に書かれたいくつかの古いプログラムがそれをしたからといって?
コロンで始まる行は、goto
でジャンプできるラベルです。
goto end
:end
二重コロンで始まる行はラベルです。ただし、誤ってジャンプすることはできません。
goto :end REM this doesn't work
::end
したがって、行をコメント化するには二重コロンを使用します。
acdcjuniorLabelsおよび::
には特別なロジックがあり、括弧ブロックで問題を引き起こす可能性があります
ここにいくつかのサンプルがあります
サンプル1
IF 1==1 (
::
)
サンプル1の出力
) was unexpected at this time.
サンプル2
IF 1==1 (
::
::
)
サンプル2の出力
The system cannot find the drive specified.
コロン(:)はラベルマーカーであり、取得した指示に使用できます。
一部の人々は:をコメントとしても使用しているので、二重コロンは単なる文体REMステートメント