欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

批处理之for /f

程序员文章站 2024-02-03 11:16:46
...


通常,我们使用批处理命令来处理文本,而解析文本主要使用的就是for /f,通过几个常见使用场景的例子,来感受for /f的使用方式吧。

显示文本内容

描述:将同一目录下的test.txt的内容全部显示出来。

test.txt内容如下:
111
222
333
@echo off
for /f %%i in (test.txt) do echo %%i & pause
pause

说明:运行这段代码,可以发现,每次输出一行后需要按任意键后才输出下一行,也就是说,for /f是在逐行解析文本内容的。

字符串截取

描述:以,为分隔符,截取第一个,之前的内容。

test.txt内容如下:
1,1,1
2,2,2
3,3,3
@echo off
for /f "delims=," %%i in (test.txt) do echo %%i
pause

说明:运行可以发现,每行输出的内容里第一个,及其之后的内容不见了,即提取了每一行第一个分隔符之前的字符串内容,分隔符就是通过开关delims设置的如有多个分隔符都写出来即可"delims=,.",即一次可以指定多个分隔符,如果没有设置,那么分隔符默认是空格和Tab键的。

截取指点段字符串

描述:以,为分隔符,取分割后的第三段字符串。

test.txt内容如下:
11,22,33,44,55
@echo off
for /f "delims=, tokens=3" %%i in (test.txt) do echo %%i
pause

说明:运行这段代码,会输出33,也就是第三段字符串,这里的tokens就是表示提取哪一段分割段的,如果要提取多段字符串,只要改成这样既可:

@echo off
for /f "delims=, tokens=2,5" %%i in (test.txt) do echo %%i %%j
pause

说明:运行这段代码,输出为22 55,如果tokens指定了多个数字,for和in之间的形式变量为%%i,那么第一个数字2指代内容用%%i来表示,第二个数字5指代的内容用%%j来表示…如果这里的%%i换成%%a,那么第二个数字5指代的内容就要用%%b来表示,如果这里的%%i换成%%x,那么第二个数字5指代的内容就要用%%y来表示。
tokens中如果数字连续,比如"tokens=1,3,4,5,6",等价于"tokens=1,3-6"。

相关标签: 批处理