【文章內(nèi)容簡(jiǎn)介】
and [mandparameters] %%variable 指定一個(gè)單一字母可替換的參數(shù)。 (set) 指定一個(gè)或一組文件。可以使用通配符。 //不帶參數(shù)時(shí),只指文件。mand 指定對(duì)每個(gè)文件執(zhí)行的命令。 mandparameters 為特定命令指定參數(shù)或命令行開關(guān)。 DO后面可以跟if等其他命令,需要用()括起來(lái)。示例: for%%iin(t*.*)doecho%%i顯示當(dāng)前目錄下與t*.*相匹配的文件(只顯示文件名,不顯示路徑)for%%iin(d:\mydocuments\*.doc)do@echo%%i顯示d:\mydocuments\目錄下與*.doc相匹配的文件2. 帶有參數(shù)時(shí):(1) 參數(shù)/d(參數(shù)只能顯示當(dāng)前目錄下的目錄名字)格式:FOR/D%variableIN(set)DOmand[mandparameters]這個(gè)參數(shù)主要用于目錄搜索,不會(huì)搜索文件,/D參數(shù)只能顯示當(dāng)前目錄下的目錄名字。(特別說(shuō)明:只會(huì)搜索指定目錄下的目錄,不會(huì)搜索再下一級(jí)的目錄。)for/d%%iin(c:\*)doecho%%i顯示c盤根目錄下的所有目錄for/d%%iin(???)doecho%%i顯示當(dāng)前目錄下名字只有13個(gè)字母的目錄(2) 參數(shù)/R(搜索指定路徑及所有子目錄中與set相符合的所有文件)格式:FOR/R[[drive:]path]%variableIN(set)DOmand[mandparameters]此命令會(huì)搜索指定路徑及所有子目錄中與set相符合的所有文件,注意是指定路徑及所有子目錄。set中的文件名如果含有通配符(?或*),則列舉/R參數(shù)指定的目錄及其下面的所有子目錄中與set相符合的所有文件,無(wú)相符文件的目錄則不列舉。如果set中為具體文件名,不含通配符,則枚舉該目錄樹(即列舉該目錄及其下面的所有子目錄)(并在后面加上具體的文件名),而不管set中的指定文件是否存在。 示例:for /r c:\ %%i in () do echo %%i 枚舉了c盤所有目錄,沒有通配符,:\下所有的目錄下,并顯示出來(lái)。for /r c:\ %%i in (boot*.ini) do echo %%i 包括了通配符,只列舉出保護(hù)符合通配符的文件所在的目錄。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ù)/L(該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。可以使用負(fù)的Step)格式:FOR/L%variableIN(start,step,end)DOmand[mandparameters]for /l %%i in (1,1,5) do @echo %%i 輸出1 2 3 4 5 //從1開始,遞增1,最大值為5for /l %%i in (1,2,10) do @echo %%i 輸出1,3,5,7,9 for /l %%i in (100,20,1) do @echo %%i 輸出100,80,60,40,20 for /l %%i in (1,1,5) do start cmd 打開5個(gè)CMD窗口 for /l %%i in (1,1,5) do md %%i 建立從1~5共5個(gè)文件夾 for /l %%i in (1,1,5) do rd /q %%i 刪除從1~5共5個(gè)文件夾(4) 參數(shù)/F(主要用來(lái)處理文件內(nèi)容或命令的輸出結(jié)果,/F默認(rèn)將每行作為一個(gè)元素來(lái)處理。)格式: FOR /F [options] %%i IN (file) DO mand // file代表一個(gè)或多個(gè)文件。for會(huì)依次將file中的文件打開,并且在進(jìn)行到下一個(gè)文件之前將每個(gè)文件讀取到內(nèi)存,將每行作為一個(gè)的元素,%%i代表這個(gè)元素。忽略空白的行。FOR /F [options] %%i IN (string) DO mand // string 代表字符串FOR /F [options] %%i IN (39。mand39。) DO mand // mand代表命令。命令行需要用單引號(hào)。[options] 可選: 第1行第1列 第1行第2列 第1行第3列 第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列 ,會(huì)用什么命令呢?當(dāng)然是type,type for也可以完成同樣的命令: for /f tokens=* %%i in () do echo %%i 還是先從括號(hào)執(zhí)行,因?yàn)楹袇?shù)/f,,把它作為一個(gè)集合,并且以每一行作為一個(gè)元素,所以會(huì)產(chǎn)生這樣的集合: {第1行第1列 第1行第2列 第1行第3列, //第一個(gè)元素 第2行第1列 第2行第2列 第2行第3列, //第二個(gè)元素 第3行第1列 第3行第2列 第3行第3列} //第三個(gè)元素 集合中只有3個(gè)元素,同樣用%%i依次代替每個(gè)元素,然后執(zhí)行do后面的命令。 tokens參數(shù)后面在描述。具體過(guò)程: 用%%i代替第1行第1列 第1行第2列 第1行第3列,執(zhí)行do后面的echo %%i,顯示第1行第1列 第1行第2列 第1行第3列, 用%%i代替第2行第1列 第2行第2列 第2行第3列,執(zhí)行echo %%i,顯示第2行第1列 第2行第2列 第2行第3列, 依次,直到每個(gè)元素都代替完為止。為了加強(qiáng)理解/f的作用,請(qǐng)執(zhí)行一下兩個(gè)命令,對(duì)比即可明白: for /f %%i in () do echo %%i //,因?yàn)?f的作用, 的內(nèi)容。