Windows批处理指令中,for指令在官方的使用介绍中依旧不是很理解,这里拿例子记录一下:
for /f "tokens=16" %%i in ('ipconfig ^|find /i "ipv4"') do set ip=%%i
这里是获取本机ip地址的bat指令,其中/f "tokens="
表示指每行指定的列内容被传递到每个迭代 的 for 本身。
那么/f "tokens=16"
表示选取第16列的内容赋值给%%i
,这里做一些分解;
指令ipconfig |find /i "ipv4"
输出的内容是:
IPv4 地址 . . . . . . . . . . . . : 1.0.0.1
IPv4 地址 . . . . . . . . . . . . : 192.168.0.10
将第一行的内容,用逗号
和/
或空格
定界符号进行分割,那么IPv4
就是第一列,地址
就是第二列,以此类推,1.0.0.1
就是第16列。那么第二行的内容也是一样的原理,所以就可以解释/f "tokens=16"
表示选取第16列的内容赋值给%%i
了。
参考文章
[1] for/F命令详解
[2] CMD 命令速查手册