FOR的参数/F与eol、skip
来源:百度文库 编辑:神马文学网 时间:2024/04/30 06:17:19
四、/F 参数
格式:
FOR /F ["options"] %%variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %%variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %%variable IN ('command') DO command [command-parameters]
用法:
一句话总结:常用于文本信息编辑,如查询、提取、替换等等。
迭代及文件解析,使用文件解析来处理命令输出、字符串及文件内容。
注意:
带引号的字符串"options"包括一个或多个指定不同解析选项的关键字:eol=、skip=、delims=、tokens=和usebackq。后面将逐个讲解。
先创建一个文本文件a.txt,内容如下:
::我的测试
aaa,bbb,ccc,ddd
iii jjj kkk lll
eee,fff,ggg,hhh
你好,甲兵,考试,吃饭
将本内容保存好,后面内容都要用到该文本做试验。
(一) eol=c 忽略以某字符开头的行
格式:
FOR /F "eol=c" %%I IN (Command1) DO Command2
用法:
eol=c
一句话总结:表示忽略(隐藏、屏蔽)开头字符是C的行。
“指定行尾字符(仅一个字符)。”这是帮助文件里的话,目前不理解它的用法。
Eol=
默认情况下屏蔽冒号开头的行
如果C是文本某行开头第一个字符,即“eol=a”,它将在屏幕上屏蔽掉以a开头的行。
例如:文本“静夜思.txt”的内容是:
床前明月光,
疑是地上霜;
举头望明月,
低头思故乡。
如何忽略掉文本文件a.txt中的第三行:“举头望明月,”?
@echo off
for /f "eol=举" %%i in (静夜思.txt) do echo %%i
pause>nul
运行结果将隐藏第三行。
注意:
如果忽略的字符串的开头是重复字符,则EOL后只需截取一个字符。
如要“aaa”,“eol=”后只需一个“a”就可以了。同样,双冒号“::”只取一个。
练习:
请用skip屏蔽掉文本“a.txt”中的第四行,即隐藏行“eee,fff,ggg,hhh”。
拓展思考:如何文本中的最后一行?
(二)skip=n 忽略前N行
格式:
FOR /F "skip=n" %%I IN (Command1) DO Command2
用法:
一句话总结:忽略文本开头的前N行。
skip=n表示忽略(屏蔽、隐藏)从第一行到第N行的内容。(n>0)
例:忽略文本a的前四行。
@echo off
for /f "skip=4" %%i in (a.txt) do echo %%i
pause>nul
运行结果将只显示第五行。
练习:
忽略掉文本“a.txt”中的第一行有几种方法?
拓展思考:如何单纯屏蔽第五行? 注:此文非本人原创,属转载!!!