CMD - for /f 命令记录

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 命令速查手册

posted @ 2020-04-13 15:24  Macrored  阅读(2800)  评论(0编辑  收藏  举报