對一組文件中的每一個文件執(zhí)行某個特定命令,
史上最強之dos命令FOR
。FOR%variableIN(set)DOcommand[command-parameters]
%variable指定一個單一字母可替換的參數(shù)。
(set)指定一個或一組文件?梢允褂猛ㄅ浞。
command指定對每個文件執(zhí)行的命令。
command-parameters
為特定命令指定參數(shù)或命令行開關(guān)。
在批處理程序中使用FOR命令時,指定變量請使用%%variable
而不要用%variable。變量名稱是區(qū)分大小寫的,所以%i不同于%I.
如果命令擴展被啟用,下列額外的FOR命令格式會受到
支持:
FOR/D%variableIN(set)DOcommand[command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件
名匹配。
FOR/R[[drive:]path]%variableIN(set)DOcommand[command-parameters]
檢查以[drive:]path為根的目錄樹,指向每個目錄中的
FOR語句。如果在/R后沒有指定目錄,則使用當(dāng)前
目錄。如果集僅為一個單點(.)字符,則枚舉該目錄樹。
FOR/L%variableIN(start,step,end)DOcommand[command-parameters]
該集表示以增量形式從開始到結(jié)束的一個數(shù)字序列。
因此,(1,1,5)將產(chǎn)生序列12345,(5,-1,1)將產(chǎn)生
序列(54321)。
FOR/F["options"]%variableIN(file-set)DOcommand[command-parameters]
FOR/F["options"]%variableIN("string")DOcommand[command-parameters]
FOR/F["options"]%variableIN('command')DOcommand[command-parameters]
或者,如果有usebackq選項:
FOR/F["options"]%variableIN(file-set)DOcommand[command-parameters]
FOR/F["options"]%variableIN("string")DOcommand[command-parameters]
FOR/F["options"]%variableIN('command')DOcommand[command-parameters]
filenameset為一個或多個文件名,
電腦資料
《史上最強之dos命令FOR》(http://www.szmdbiao.com)。繼續(xù)到filenameset中的下一個文件之前,每份文件都已被打開、讀取并經(jīng)過處理。
處理包括讀取文件,將其分成一行行的文字,然后將每行
解析成零或更多的符號。然后用已找到的符號字符串變量值
調(diào)用For循環(huán)。以默認方式,/F通過每個文件的每一行中分開
的第一個空白符號。跳過空白行。您可通過指定可選"options"
參數(shù)替代默認解析操作。這個帶引號的字符串包括一個或多個
指定不同解析選項的關(guān)鍵字。這些關(guān)鍵字為:
eol=c-指一個行注釋字符的結(jié)尾(就一個)
skip=n-指在文件開始時忽略的行數(shù)。
delims=xxx-指分隔符集。這個替換了空格和跳格鍵的
默認分隔符集。
tokens=x,y,m-n-指每行的哪一個符號被傳遞到每個迭代
的for本身。這會導(dǎo)致額外變量名稱的分配。m-n
格式為一個范圍。通過nth符號指定mth。如果
符號字符串中的最后一個字符星號,
那么額外的變量將在最后一個符號解析之后
分配并接受行的保留文本。
usebackq-指定新語法已在下類情況中使用:
在作為命令執(zhí)行一個后引號的字符串并且一個單
引號字符為文字字符串命令并允許在filenameset
中使用雙引號擴起文件名稱。
某些范例可能有助:
FOR/F"eol=;tokens=2,3*delims=,"%iin(myfile.txt)do%j%k