關于批處理中FOR語句的使用說明與學習技巧
更新時間:2007年10月17日 22:35:49 作者:
批處理 bat中的for命令的作用,非常的不錯,可以節(jié)省很多效率,它可以讀取文章的沒一行,循環(huán)執(zhí)行ping命令,老探索端口,學習批處理如果不學習for將是個遺憾,希望大家多看看for 命令的實際應用的例子,如果只看簡單的基礎的使用方法,而缺少實際應用的話,再多的基礎也不成,一定先看實例再看基礎,帶著問題去看基礎,相信很快大家就可以上手了,本站有不少這樣的資源,大家可以搜下
下面我就把for命令的基本參數整理下,大家在學習的時候可以在dos下打for /?來查看幫助,大家都是這樣過來的
For
對一組文件中的每個文件運行指定的命令。
語法
for{%Variable|%%Variable}in(Set)doCommand[CommandLineOptions]
參數
{%Variable|%%Variable}
必需。代表可替換的參數。使用%Variable通過命令提示符執(zhí)行for命令。使用%%Variable在批處理
文件中執(zhí)行for命令。變量要區(qū)分大小寫,并且必須用Alpha值表示,例如,%A、%B或%C。
(Set)
必需。指定要用指定命令處理的一個或多個文件、目錄、數值范圍以及文本字符串。需要括號。
Command
必需。指定要對包括在指定的(Set)中每個文件、目錄、數值范圍或文本字符串所執(zhí)行的命令。
CommandLineOptions
指定要與所指定命令一起使用的任何命令行選項。
/?
在命令提示符下顯示幫助。
注釋
•使用for
可以在批處理文件中或直接從命令提示符使用for命令。
•使用批處理參數
下列屬性適用于for命令:
•for命令用Set中指定的每個文本字符串替換%Variable或%%Variable,直到Command處理完所有
文件為止。
•ForVariable名是區(qū)分大小寫、全局的,并且每次活動的總共不超過52個。
•要避免混淆批處理參數%0到%9,可對Variable使用除數字0到9之外的任何字符。對于簡單的
批處理文件,單個字符即可生效,例如%%f。
•在復雜的批處理文件中可以使用多個Variable值來區(qū)分不同的可替換變量。
•指定一組文件
Set參數可以代表單個或多個文件組??梢允褂猛ㄅ浞?和?)指定文件組。以下為有效文件組:
(*.doc)
(*.doc*.txt*.me)
(jan*.docjan*.rptfeb*.docfeb*.rpt)
(ar??1991.*ap??1991.*)
在使用for命令時,Set中的第一個值代替%Variable或%%Variable,然后由指定的命令處理該值。
這會持續(xù)到處理完與Set值相對應的所有文件(或文件組)為止。
•使用in和do關鍵字
In和do不是參數,但必須將它們與for一起使用。如果省略其中任何一個關鍵字,就會出現(xiàn)錯誤消息
。
•使用for的其他格式
如果啟用命令擴展(這是默認設置),則支持for的下列其他格式:
•僅目錄
如果Set包含通配符(*和?),將對與Set相匹配的每個目錄(而不是指定目錄中的文件組)執(zhí)行指
定的Command。語法是:
for/D{%%|%}Variablein(Set)doCommand[CommandLineOptions]
•遞歸
進入根目錄樹[Drive:]Path,在樹的每個目錄中執(zhí)行for語句。如果在/R后沒有指定目錄,則認為是
當前目錄。如果Set只是一個句點(.),則只枚舉目錄樹。語法是:
for/R[[Drive:]Path]{%%|%}Variablein(Set)doCommand[CommandLineOptions]
•迭代數值范圍
使用迭代變量設置起始值(Start#),然后逐步執(zhí)行一組范圍的值,直到該值超過所設置的終止值(End#)
。/L將通過對Start#與End#進行比較來執(zhí)行迭代變量。如果Start#小于End#,就會執(zhí)行該命令。
如果迭代變量超過End#,則命令解釋程序退出此循環(huán)。還可以使用負的Step#以遞減數值的方式逐步執(zhí)
行此范圍內的值。例如,(1,1,5)生成序列12345,而(5,-1,1)則生成序列(54321)。語法是
:
for/L{%%|%}Variablein(Start#,Step#,End#)doCommand[CommandLineOptions]
•迭代及文件解析
使用文件解析來處理命令輸出、字符串及文件內容。使用迭代變量定義要檢查的內容或字符串,并使用各
種ParsingKeywords選項進一步修改解析方式。使用ParsingKeywords令牌選項指定哪些令牌應該作為
迭代變量傳遞。請注意:在沒有使用令牌選項時,/F將只檢查第一個令牌。
文件解析過程包括讀取輸出、字符串或文件內容,將其分成獨立的文本行以及再將每行解析成零個或更多
個令牌。然后通過設置為令牌的迭代變量值,調用for循環(huán)。默認情況下,/F傳遞每個文件每一行的第
一個空白分隔符號。跳過空行。語法的不同點為:
for/F["ParsingKeywords"]{%%|%}Variabelin(FileNameSet)doCommand[CommandLineOptions]
for/F["ParsingKeywords"]{%%|%}Variablein("LiteralString")doCommand
[CommandLineOptions]
for/F["ParsingKeywords"]{%%|%}Variablein('Command')doCommand[CommandLineOptions]
FileNameSet參數指定一個或多個文件名稱。每個文件都將被打開、讀取和處理,然后再繼續(xù)執(zhí)行
FileNameSet中的下一個文件。要覆蓋默認解析行為,請指定"ParsingKeywords"。這是一個引號括起來
的字符串,它包含一個或多個關鍵字以指定不同的解析選項。
如果使用usebackq選項,請使用如下語法之一:
for/F["usebackqParsingKeywords"]{%%|%}Variablein("FileNameSet")doCommand
[CommandLineOptions]
for/F["usebackqParsingKeywords"]{%%|%}Variablein('LiteralString')doCommand
[CommandLineOptions]
for/F["usebackqParsingKeywords"]{%%|%}Variablein('Command')doCommand
[CommandLineOptions]
本文出自非常批處理交流論壇,更多精彩文章請訪問bbs.verybat.cn。
下面我就把for命令的基本參數整理下,大家在學習的時候可以在dos下打for /?來查看幫助,大家都是這樣過來的
For
對一組文件中的每個文件運行指定的命令。
語法
for{%Variable|%%Variable}in(Set)doCommand[CommandLineOptions]
參數
{%Variable|%%Variable}
必需。代表可替換的參數。使用%Variable通過命令提示符執(zhí)行for命令。使用%%Variable在批處理
文件中執(zhí)行for命令。變量要區(qū)分大小寫,并且必須用Alpha值表示,例如,%A、%B或%C。
(Set)
必需。指定要用指定命令處理的一個或多個文件、目錄、數值范圍以及文本字符串。需要括號。
Command
必需。指定要對包括在指定的(Set)中每個文件、目錄、數值范圍或文本字符串所執(zhí)行的命令。
CommandLineOptions
指定要與所指定命令一起使用的任何命令行選項。
/?
在命令提示符下顯示幫助。
注釋
•使用for
可以在批處理文件中或直接從命令提示符使用for命令。
•使用批處理參數
下列屬性適用于for命令:
•for命令用Set中指定的每個文本字符串替換%Variable或%%Variable,直到Command處理完所有
文件為止。
•ForVariable名是區(qū)分大小寫、全局的,并且每次活動的總共不超過52個。
•要避免混淆批處理參數%0到%9,可對Variable使用除數字0到9之外的任何字符。對于簡單的
批處理文件,單個字符即可生效,例如%%f。
•在復雜的批處理文件中可以使用多個Variable值來區(qū)分不同的可替換變量。
•指定一組文件
Set參數可以代表單個或多個文件組??梢允褂猛ㄅ浞?和?)指定文件組。以下為有效文件組:
(*.doc)
(*.doc*.txt*.me)
(jan*.docjan*.rptfeb*.docfeb*.rpt)
(ar??1991.*ap??1991.*)
在使用for命令時,Set中的第一個值代替%Variable或%%Variable,然后由指定的命令處理該值。
這會持續(xù)到處理完與Set值相對應的所有文件(或文件組)為止。
•使用in和do關鍵字
In和do不是參數,但必須將它們與for一起使用。如果省略其中任何一個關鍵字,就會出現(xiàn)錯誤消息
。
•使用for的其他格式
如果啟用命令擴展(這是默認設置),則支持for的下列其他格式:
•僅目錄
如果Set包含通配符(*和?),將對與Set相匹配的每個目錄(而不是指定目錄中的文件組)執(zhí)行指
定的Command。語法是:
for/D{%%|%}Variablein(Set)doCommand[CommandLineOptions]
•遞歸
進入根目錄樹[Drive:]Path,在樹的每個目錄中執(zhí)行for語句。如果在/R后沒有指定目錄,則認為是
當前目錄。如果Set只是一個句點(.),則只枚舉目錄樹。語法是:
for/R[[Drive:]Path]{%%|%}Variablein(Set)doCommand[CommandLineOptions]
•迭代數值范圍
使用迭代變量設置起始值(Start#),然后逐步執(zhí)行一組范圍的值,直到該值超過所設置的終止值(End#)
。/L將通過對Start#與End#進行比較來執(zhí)行迭代變量。如果Start#小于End#,就會執(zhí)行該命令。
如果迭代變量超過End#,則命令解釋程序退出此循環(huán)。還可以使用負的Step#以遞減數值的方式逐步執(zhí)
行此范圍內的值。例如,(1,1,5)生成序列12345,而(5,-1,1)則生成序列(54321)。語法是
:
for/L{%%|%}Variablein(Start#,Step#,End#)doCommand[CommandLineOptions]
•迭代及文件解析
使用文件解析來處理命令輸出、字符串及文件內容。使用迭代變量定義要檢查的內容或字符串,并使用各
種ParsingKeywords選項進一步修改解析方式。使用ParsingKeywords令牌選項指定哪些令牌應該作為
迭代變量傳遞。請注意:在沒有使用令牌選項時,/F將只檢查第一個令牌。
文件解析過程包括讀取輸出、字符串或文件內容,將其分成獨立的文本行以及再將每行解析成零個或更多
個令牌。然后通過設置為令牌的迭代變量值,調用for循環(huán)。默認情況下,/F傳遞每個文件每一行的第
一個空白分隔符號。跳過空行。語法的不同點為:
for/F["ParsingKeywords"]{%%|%}Variabelin(FileNameSet)doCommand[CommandLineOptions]
for/F["ParsingKeywords"]{%%|%}Variablein("LiteralString")doCommand
[CommandLineOptions]
for/F["ParsingKeywords"]{%%|%}Variablein('Command')doCommand[CommandLineOptions]
FileNameSet參數指定一個或多個文件名稱。每個文件都將被打開、讀取和處理,然后再繼續(xù)執(zhí)行
FileNameSet中的下一個文件。要覆蓋默認解析行為,請指定"ParsingKeywords"。這是一個引號括起來
的字符串,它包含一個或多個關鍵字以指定不同的解析選項。
如果使用usebackq選項,請使用如下語法之一:
for/F["usebackqParsingKeywords"]{%%|%}Variablein("FileNameSet")doCommand
[CommandLineOptions]
for/F["usebackqParsingKeywords"]{%%|%}Variablein('LiteralString')doCommand
[CommandLineOptions]
for/F["usebackqParsingKeywords"]{%%|%}Variablein('Command')doCommand
[CommandLineOptions]
本文出自非常批處理交流論壇,更多精彩文章請訪問bbs.verybat.cn。
相關文章
復制文件到c盤windows文件夾下的system32的批處理寫法
三個文件復制到c盤windows文件夾下的system32文件夾 批處理怎么寫?本文提供解決方法,需要的朋友可以了解下2012-12-12BAT批處理全自動(靜默)安裝軟件的方法(包含4種常見安裝包格式)
這篇文章主要介紹了BAT批處理全自動(靜默)安裝軟件的方法(包含4種常見安裝包格式),本文講解了常用應用軟件的封裝類型、測試方法與安裝類型分析、在批處理文件中的要求等內容,需要的朋友可以參考下2015-06-06批處理之家發(fā)現(xiàn)的用批處理實現(xiàn)的系統(tǒng)類應用代碼
本批處理用到 WIMC FOR CALL GOTO 等大量的代碼 適合新手做研究2008-06-06