华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
  當(dāng)前位置:操作系統(tǒng) > DOS > 文章內(nèi)容
  

DOS批處理高級教程:DOS循環(huán)for命令詳解

 [ 2017年8月25日 ] 【

  保存執(zhí)行看效果,他會打印從1 2 3 4 5 這樣5個數(shù)字(1,1,5)這個參數(shù)也就是表示從1開始每次加1直到5終止!

  等會暈,就打印個數(shù)字有P用...好的滿足大家,看這個例子

  ?

1
2
3
@echo off
for /l %%i in (1,1,5) do start cmd
pause

  執(zhí)行后是不是嚇了一跳,怎么多了5個CMD窗口,呵呵!如果把那個 (1,1,5)改成 (1,1,65535)會有什么結(jié)果,我先告訴大家,會打開65535個CMD窗口....這么多你不死機(jī)算你強(qiáng)!

  當(dāng)然我們也可以把那個start cmd改成md %%i 這樣就會建立指定個目錄了!!!名字為1-65535

  看完這個被我賦予破壞性質(zhì)的參數(shù)后,我們來看最后一個參數(shù)

  五、參數(shù) /F

  \迭代及文件解析

  使用文件解析來處理命令輸出、字符串及文件內(nèi)容。使用迭代變量定義要檢查的內(nèi)容或字符串,并使用各種options選項(xiàng)進(jìn)一步修改解析方式。使用options令牌選項(xiàng)指定哪些令牌應(yīng)該作為迭代變量傳遞。請注意:在沒有使用令牌選項(xiàng)時,/F 將只檢查第一個令牌。

  文件解析過程包括讀取輸出、字符串或文件內(nèi)容,將其分成獨(dú)立的文本行以及再將每行解析成零個或更多個令牌。然后通過設(shè)置為令牌的迭代變量值,調(diào)用 for 循環(huán)。默認(rèn)情況下,/F 傳遞每個文件每一行的第一個空白分隔符號。跳過空行。

  詳細(xì)的幫助格式為:

  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"包括一個或多個指定不同解析選項(xiàng)的關(guān)鍵字。這些關(guān)鍵字為:

  eol=c - 指一個行注釋字符的結(jié)尾(就一個)

  skip=n - 指在文件開始時忽略的行數(shù)。

  delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認(rèn)分隔符集。

  tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代的 for 本身。這會導(dǎo)致額外變量名稱的分配。m-n格式為一個范圍。通過 nth 符號指定 mth。如果符號字符串中的最后一個字符星號,那么額外的變量將在最后一個符號解析之后分配并接受行的保留文本。經(jīng)測試,該參數(shù)最多只能區(qū)分31個字段。

  usebackq - 使用后引號(鍵盤上數(shù)字1左面的那個鍵`)。

  未使用參數(shù)usebackq時:file-set表示文件,但不能含有空格

  雙引號表示字符串,即"string"

  單引號表示執(zhí)行命令,即'command'

  使用參數(shù)usebackq時:file-set和"file-set"都表示文件

  當(dāng)文件路徑或名稱中有空格時,就可以用雙引號括起來

  單引號表示字符串,即'string'

  后引號表示命令執(zhí)行,即`command`

  以上是用for /?命令獲得的幫助信息,直接復(fù)制過來的。

  暈慘了!我這就舉個例子幫助大家來理解這些參數(shù)!

  For命令例1:****************************************

  ?

1
2
3
4
5
6
7
8
9
@echo off
rem 首先建立臨時文件test.txt
echo ;注釋行,這是臨時文件,用完刪除 >test.txt
echo 11段 12段 13段 14段 15段 16段 >>test.txt
echo 21段,22段,23段,24段,25段,26段 >>test.txt
echo 31段-32段-33段-34段-35段-36段 >>test.txt
FOR /F "eol=; tokens=1,3* delims=,- " %%i in (test.txt) do echo %%i %%j %%k
Pause
Del test.txt

  運(yùn)行顯示結(jié)果:

  11段 13段 14段 15段 16段

  21段 23段 24段,25段,26段

  31段 33段 34段-35段-36段

  請按任意鍵繼續(xù). . .

  為什么會這樣?我來解釋:

  eol=; 分號開頭的行為注釋行

  tokens=1,3* 將每行第1段,第3段和剩余字段分別賦予變量%%i,%%j,%%k

  delims=,- (減號后有一空格)以逗號減號和空格為分隔符,空格必須放在最后

  For命令例2:****************************************

  ?

1
2
3
@echo off
FOR /F "eol= delims=" %%i in (test.txt) do echo %%i
Pause

  運(yùn)行將顯示test.txt全部內(nèi)容,包括注釋行,不解釋了哈。

  For命令例3:****************************************

  另外/F參數(shù)還可以以輸出命令的結(jié)果看這個例子

  ?

1
2
3
@echo off
FOR /F "delims=" %%i in ('net user') do @echo %%i
pause

  這樣你本機(jī)全部帳號名字就出來了把擴(kuò)號內(nèi)的內(nèi)容用兩個單引號引起來就表示那個當(dāng)命令執(zhí)行,FOR會返回命令的每行結(jié)果,加那個"delims=" 是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!

  基本上講完了FOR的基本用法了...如果你看過FOR的系統(tǒng)幫助,你會發(fā)現(xiàn)他下面還有一些特定義的變量,這些我先不講.大家因該都累了吧!你不累我累啊....

首頁 1 2 尾頁
本文糾錯】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
郸城县| 汉阴县| 都昌县| 合川市| 永修县| 定安县| 平阴县| 东乌珠穆沁旗| 乌什县| 溆浦县| 海兴县| 泾川县| 扬州市| 石楼县| 寿光市| 会宁县| 闵行区| 古浪县| 阜城县| 含山县| 临颍县| 兰考县| 宁南县| 苍梧县| 双峰县| 奈曼旗| 靖边县| 新宁县| 盐山县| 盐池县| 鄂州市| 阿拉善右旗| 汉寿县| 邢台县| 全州县| 灵石县| 岑溪市| 安宁市| 南郑县| 西宁市| 江口县|