用過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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!