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