1

今天是 11/01/2013

我有以下 .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 个标记,然后输出结果变量:它不应该给我 '2013' 值,因为它是分配给 %%i 的最后一个标记吗?

4

1 回答 1

1

您将获得三个令牌。试试这个,它只会提取第三个令牌。

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

请参阅/f 参考以了解其工作原理。循环一次在一行上工作,并按指定的分隔符将其拆分。

FOR /F 文本文件的处理包括读取文件,一次一行文本,然后将行分解为称为“令牌”的单独数据项。

在这种情况下,您正在执行一个命令,但这被视为读取文件:

文本字符串将被视为文件中的单行输入,该字符串必须用双引号括起来(或使用 usebackq 的单引号)。

`DATE /T' 命令是一个单独的行,分为三个元素。

于 2013-01-11T20:18:19.963 回答