1

今日は2013年11月1日です

私は次の.batファイルを持っています:

@ECHO OFF
:: Take the output from DATE and assign it to variable today
FOR /F "tokens=* delims=/" %%i IN ('DATE /T') do SET /A today=%%i

ECHO %today%
PAUSE

そしてそれは出力します:11

FORに3つのトークンを反復処理してから、結果の変数を出力するように指示している場合:%% iに割り当てられた最後のトークンであるため、「2013」の値をスローするべきではありませんか?

4

1 に答える 1

1

3つのトークンを取得します。3番目のトークンのみを抽出するこれを試してください。

FOR /F "tokens=3 delims=/" %%i IN ('DATE /T') do SET /A today=%%i

これがどのように機能するかについては、/fリファレンスを参照してください。ループは一度に1行ずつ機能し、指定された区切り文字で分割します。

テキストファイルのFOR/F処理は、ファイルを一度に1行ずつ読み取り、その行を「トークン」と呼ばれる個々のデータ項目に分割することで構成されます。

この場合、コマンドを実行していますが、それはファイルを読み取るように扱われます。

テキストの文字列は、ファイルからの1行の入力と同じように扱われます。文字列は、二重引用符(またはusebackqを使用した一重引用符)で囲む必要があります。

`DATE / T'コマンドは、3つの要素に分割された1行です。

于 2013-01-11T20:18:19.963 に答える