“For /f”中的tokens怎么用?

来源:百度知道 编辑:UC知道 时间:2024/05/23 01:25:21
网上有好多“for /?”的帖子,看不懂,帮个忙吧?

tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的格式为一个范围。通过 nth 符号指定 m符号。如果字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后,分配并接受行的保留文本。

token里的x,y表示第x,y个字符被传递给for命令
m-n表示第m到第n个字符

举几个例子:
for /f \"skip=5 tokens=4\" %%a in ('dir') do echo %%a
对 dir 命令的结果,跳过前面5行,余下的每行取第4列
每列之间的分隔符为默认的\"空格\"
可以注意到 dir 命令输出的前5行是没有文件名的

for /f \"tokens=1,2,3 delims=- \" %%a in ('date /t') do (
echo %%a
echo %%b
echo %%c
)
对 date /t 的输出结果,每行取1、2、3列
第一列对应指定的 %%a ,后面的 %%b 和 %%c 是派生出来的,对应其它列
分隔符指定为 - 和\"空格\",注意 delims=- 后面有个\"空格\"
其中 tokens=1,2,3 若用 tokens=1-3 替换,效果是一样的

for /f \"tokens=2* delims=- \" %%a in ('date /t') do echo %%b
取第2列给 %%a ,其后的列都给 %%b

这个要靠自己的理解的,你可以在操作系统自带的帮助里输入for搜索一下,有这个命令的详细帮助的,我的这些命令的使用方法都从操作系统自带的帮助里学来的