用过linux系统的伴侣都应该知道awk功能的壮大,那windows系统DOS下有没有近似功能号令,可以或许获取文件中或号令输出文本中指定字段的值呢?谜底是必定的,FOR 号令就可以或许实现该功能。
for号令在XP系统上就已经起头存在了,它的功能也很壮大,可以完当作良多复杂的功能。
获取字段值只是for号令浩繁功能中的一个,经由过程加参数“/f”来实现。
如文件students.txt内容如下:
姓名 春秋 成就
张三 18 80
李四 19 86
要取得所有人的春秋,可以用号令:
for /f "skip=1 tokens=2" %i in (students.txt) do echo %i
“skip=1 ”暗示跳过第一行,从第二行起头读取文件
“tokens=2”暗示提取第二个字段值
没有指定“delims”分隔符的值,利用默认分隔符——“空格和TAB键”作为各字段的分隔符。如需指定“,”作为分隔符,只需如下输入:
for /f "skip=1 tokens=2 delims=," %i in (students.txt) do echo %i
如需读取记实并将每笔记录按后面的格局生当作一句话:XXX本年XX岁,成就是XX。可以用号令:
for /f "skip=1 tokens=1,2*" %i in (students.txt) do echo %i本年%j岁,成就是%k
“tokens=1,2*”暗示提取第一、二字段,并将第二字段后的所有内容做为第三字段的值输出。
%i,%j,%k别离对应第一、二、三字段的值
for号令还可以从号令输出的成果中提出字段值,如从历程列表中查找记事本notepad历程并获取PID的号令可如下:
for /f "usebackq tokens=2" %i in (`tasklist^|findstr notepad`) do echo %i
如需利用号令,必需利用“usebackq”参数,而且号令要用反引号符“`”(键盘上tab键上方的键)引起来。号令中若有特别字符,需在前面加“^”字符进行字符转义。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!