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,内容如下:

::我的测试

aaabbbcccddd

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”中的第一行有几种方法?

拓展思考:如何单纯屏蔽第五行? 注:此文非本人原创,属转载!!!