批处理 for 遍历文件内容
for循环支持遍历文件中的内容。
1 基础
语法
for /f %%循环变量 in (文件表达式) do (
命令
)
1)f:file,表示文件内容。
2)循环变量依次表示文件中的每一部分内容。“每一部分”可以进行指定,表示一个单词,表示一句,等。
代码
@ echo off
for /f %%i in (F:\99-task\data\file1.txt) do (
echo xiaobuteach 文件内容:%%i
)
pause
file1.txt文件内容如下。
xiaobuteach-content-line1
xiaobuteach-content-line2
xiaobuteach-content-line3
运行结果
file2.txt中每一行有空格时的处理
@ echo off
for /f %%i in (F:\99-task\data\file2.txt) do (
echo xiaobuteach 文件内容:%%i
)
pause
file2.txt文件内容如下。
xiaobuteach1 content1 line1
xiaobuteach2 content2 line2
xiaobuteach3 content3 line3
运行结果
原因分析:
默认按行读取文件,每一行内容根据delims(默认值是空隔与制表符)进行进一步分割成多节,默认显示第1节(即tokens默认为1)。
2 delims用法
delims也可以同时指定多个自定义字符。
示例代码
@ echo off
for /f "delims=,. " %%i in (F:\99-task\data\file3.txt) do (
echo xiaobuteach 文件内容:%%i
)
pause
注意事项
delims=,.的后面有一个空格。
file3.txt文件内容如下。
xiaobuteach1,content1.line1
xiaobuteach2 content2,line2
xiaobuteach3 content3,line3
运行结果
3 tokens用法
tokens指定仅包含单节:tokens=2
tokens指定包含多节内容:tokens=1,3,5
tokens指定包含所有节: tokes=*
代码
@ echo off
for /f "delims=,. tokens=*" %%i in (F:\99-task\data\file3.txt) do (
echo xiaobuteach 文件内容:%%i
)
pause
运行结果