【正文】
skip參數(shù):skip就是要忽略文件的前多少行比如: for /f skip=2 tokens=* %%i in () do echo %%i 結(jié)果為: 第3行第1列 第3行第2列 第3行第3列 用skip來告訴for跳過前兩行。用%%i代替第2個元素,%%j代替第3個元素。 但參數(shù)的個數(shù)要相應(yīng)的增加。還是上面的例子,執(zhí)行如下命令: for /f tokens=2 delims= %%i in () do echo %%i 執(zhí)行結(jié)果: 第1行第2列 第2行第2列 第3行第2列如果要顯示第三列,那就換成tokens=3。 執(zhí)行過程是: 將第一個元素第1行第1列 第1行第2列 第1行第3列分成三個元素:第1行第1列 第1行第2列 第1行第3列,它默認(rèn)只取第一個,即第1行第1列,然后執(zhí)行do后面的命令,依次類推。比如,還是上面的文件,我們執(zhí)行下面的命令: for /f delims= %%i in () do echo %%i 顯示的結(jié)果是: 第1行第1列 第2行第1列 第3行第1列 為什么是這樣的呢。通過上面的學(xué)習(xí),我們發(fā)現(xiàn)for /f會默認(rèn)以每一行來作為一個元素,但是如果我們還想把每一行再分解更小的內(nèi)容,該怎么辦呢?不用擔(dān)心,for命令還為我們提供了更詳細(xì)的參數(shù),使我們將每一行分為更小的元素成為可能。為了加強(qiáng)理解/f的作用,請執(zhí)行一下兩個命令,對比即可明白: for /f %%i in () do echo %%i //,因?yàn)?f的作用, 的內(nèi)容。 tokens參數(shù)后面在描述。命令行需要用單引號。mand39。忽略空白的行。)格式: FOR /F [options] %%i IN (file) DO mand // file代表一個或多個文件。mand(start,step,end)%variableStep)格式:FOR(該集表示以增量形式從開始到結(jié)束的一個數(shù)字序列。for /r d:\backup %%i in (1) do echo %%i 枚舉d\backup目錄 for /r c:\ %%i in () do if exist %%i echo %%i 很好的搜索命令,(3) 參數(shù) 示例:for /r c:\ %%i in () do echo %%i 枚舉了c盤所有目錄,沒有通配符,:\下所有的目錄下,并顯示出來。此命令會搜索指定路徑及所有子目錄中與set相符合的所有文件,注意是指定路徑及所有子目錄。[mandparameters]DOIN[[drive:]path](搜索指定路徑及所有子目錄中與set相符合的所有文件)格式:FOR(2) 參數(shù)echo(???)%%ifor顯示c盤根目錄下的所有目錄%%idoin/d(特別說明:只會搜索指定目錄下的目錄,不會搜索再下一級的目錄。[mandparameters]這個參數(shù)主要用于目錄搜索,不會搜索文件,/DDOIN/D/d%%idoinfor%%idoin示例: for mandparameters 為特定命令指定參數(shù)或命令行開關(guān)。 //不帶參數(shù)時,只指文件。 (set) 指定一個或一組文件。/r執(zhí)行的命令for命令可以帶參數(shù)或不帶參數(shù),帶參數(shù)時支持以下參數(shù):/d(相關(guān)文件或命令)%%變量名語法:FOR不同于變量名稱是區(qū)分大小寫的,所以%%variable,而不要用FOR (四) for命令:(參考)對一個或一組文件,字符串或命令結(jié)果中的每一個對象執(zhí)行特定命令,達(dá)到我們想要的結(jié)果。 [Y,N,C]? 例:(注意,用if errorlevel判斷返回值時,要按返回值從高到低排列): echo off choice /C dme /M defrag,mem,end if errorlevel 3 goto end if errorlevel 2 goto mem if errotlevel 1 goto defrag :defrag c:/dos/defrag goto end :mem mem goto end :end echo good bye 注:如果在bat文件中出現(xiàn)外部程序,需要知道絕對路徑,并需要用引號。 如果我運(yùn)行命令:CHOICE /C YNC /M 確認(rèn)請按 Y,否請按 N,或者取消請按 C。 CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M 選項(xiàng) 1 請選擇 a,選項(xiàng) 2 請選擇 b。在一個批程序中使用 ERRORLEVEL 參數(shù)時,將參數(shù)降序排列。如果該工具檢測到錯誤狀態(tài),它會返回 255 的ERRORLEVEL 值。列出的第一個選擇返回 1,第二個選擇返回 2,等等。 /? 顯示幫助消息。 /M text 指定提示之前要顯示的消息。字符必須在用 /C 選項(xiàng)指定的一組選擇中。如果指定了 0,就不會有暫停,默認(rèn)選項(xiàng) 會得到選擇。 /T timeout 做出默認(rèn)選擇之前,暫停的秒數(shù)。/CS 允許選擇分大小寫的選項(xiàng)。 //即[Y,N,C]?列表將隱藏,但提示用戶選擇的信息將正常顯示。 //即定義可選擇項(xiàng)/N 在提示符中隱藏選項(xiàng)列表。 參數(shù)列表: /C choices 指定要創(chuàng)建的選項(xiàng)列表。注意:choice命令為DOS或者Windows系統(tǒng)提供的外部命令,不同版本的choice命令語法會稍有不同,請用choice /?查看用法。 (3) DOS支持最長八位字符的標(biāo)號,當(dāng)無法區(qū)別兩個標(biāo)號時,將跳轉(zhuǎn)至最近的一個標(biāo)號。 注意: (1) 標(biāo)號前是ASCII字符的冒號:,冒號與標(biāo)號之間不能有空格。如: goto end :end echo this is the end 標(biāo)號用:字符串來定義,標(biāo)號所在行不被執(zhí)行。如:if defined test echo It is defined.6. if 條件1 (mand1) else (mand2) //條件1后的命令行必須有括號。成功拷貝文件0 IFECHOERRORLEVEL是用來測試它的上一個DOS命令的返回值的,注意只是上一個命令的返回值,而且返回值必須依照從大到小次序順序判斷