批处理之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"。
上一篇: 坎坷的微信小程序【笔记】
下一篇: JAVA Request获取所有请求参数