講FOR之前呢,咋先告訴各位新手朋友,如果你有什么命令不懂,直接在CMD下面輸入:
name /? 這樣的格式來看系統給出的幫助文件,比如for /? 就會把FOR命令的幫助全部顯示出來!當然許多菜鳥都看不懂....所以才會有那么多批處理文章!!!!俺也照顧菜鳥,把FOR命令用我自己的方式說明下!
正式開始:
一、基本格式
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一個單一字母表示可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters 為特定命令指定參數或命令行開關。
參數:FOR有4個參數 /d /l /r /f 他們的作用我在下面用例子解釋
現在開始講每個參數的意思
二、參數 /d
FOR /D %%variable IN (set) DO command [command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
如果 Set (也就是我上面寫的 "相關文件或命令") 包含通配符(* 和 ?),將對與 Set 相匹配的每個目錄(而不是指定目錄中的文件組)執行指定的 Command。
這個參數主要用于目錄搜索,不會搜索文件,看這樣的例子
@echo offfor /d %%i in (c:/*) do echo %%ipause |
運行會把C盤根目錄下的全部目錄名字打印出來,而文件名字一個也不顯示!
在來一個,比如我們要把當前路徑下文件夾的名字只有1-3個字母的打出來
@echo offfor /d %%i in (???) do echo %%ipause |
這樣的話如果你當前目錄下有目錄名字只有1-3個字母的,就會顯示出來,沒有就不顯示了
這里解釋下*號和?號的作用,*號表示任意N個字符,而?號只表示任意一個字符
知道作用了,給大家個思考題目!
@echo offfor /d %%i in (window?) do echo %%ipause |
保存到C盤下執行,會顯示什么呢?自己看吧! 顯示:windows
/D參數只能顯示當前目錄下的目錄名字,這個大家要注意!
三、參數 /R
FOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters]
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的FOR 語句。如果在 /R 后沒有指定目錄,則使用當前目錄。如果集僅為一個單點(.)字符,則枚舉該目錄樹。
遞歸
上面我們知道,/D只能顯示當前路徑下的目錄名字,那么現在這個/R也是和目錄有關,他能干嘛呢?放心他比/D強大多了!
他可以把當前或者你指定路徑下的文件名字全部讀取,注意是文件名字,有什么用看例子!
請注意2點:
set中的文件名如果含有通配符(?或*),則列舉/R參數指定的目錄及其下面的所用子目錄中與set相符合的所有文件,無相符文件的目錄則不列舉。
新聞熱點
疑難解答