生活随笔
收集整理的這篇文章主要介紹了
DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DOS循環:bat/批處理for命令詳解之一?(史上雖詳盡的總結和說明~~) ??--- ??--- ?? 前言: ?? 雖然以前對批處理也算有點研究,但一直對for命令理解不夠透徹,偶爾用時也是照貓畫虎的用一下。 ?? 雖然這是古董級的東西,但挺有意思的,而且有時用處也是蠻大的,所以,這次下決心研究一下,通過兩個晚上的學習和測試,算是理解了90%了,很有成就感。 ?? 在這次學習過程中,我作了詳細的總結和說明,在這里帖出來,供不明白的朋友參閱。自認為是寫得比任何教程寫得都明白,因為我是從不明白過來的,是結合自己從不理解到理解的過程寫的,嘔心瀝血啊~~所以大膽地說是史上雖詳盡的總結和說明~~ ?? 其實,這次學習主要是通過一位高手寫的教程,再結合系統提供的幫助完成的。這個教程寫得真的很不錯,可惜忘了記下出處和作者了!剛才又在網上搜了一下,發現這篇教程到處都有轉載,都找不到作者和原出處!實在感謝這位不知名的高手啊! ?? --TTT?200906160033 ?? +++ ?? 格式:FOR?[參數]?%%變量名?IN?(相關文件或命令)???DO?執行的命令 ?? 作用:對一個或一組文件,字符串或命令結果中的每一個對象執行特定命令,達到我們想要的結果。 ?? 注意:在批處理文件中使用?FOR?命令時,指定變量請使用?%%variable,而不要用?%variable。變量名稱是區分大小寫的,所以?%i?不同于?%I. ?? 關于:for命令可以帶參數或不帶參數,帶參數時支持以下參數:/d?/l?/r?/f ?? 下面分別解釋一下 ???? === ?? 零:無參數時: ?? --- ?? FOR?%variable?IN?(set)?DO?command?[command-parameters] ?? %variable??指定一個單一字母可替換的參數。 ?? (set)??????指定一個或一組文件。可以使用通配符。 ?? command????指定對每個文件執行的命令。 ?? command-parameters ?? 為特定命令指定參數或命令行開關。 ???? TTT示例: ?? for?%%i?in?(t*.*)?do?echo?%%i?--顯示當前目錄下與t*.*相匹配的文件(只顯示文件名,不顯示路徑)? ?? for?%%i?in?(d:\mydocuments\*.doc)?do?@echo?%%i?--顯示d:\mydocuments\目錄下與*.doc相匹配的文件 ???? === ?? 一、參數?/d?(參數只能顯示當前目錄下的目錄名字) ?? --- ?? 格式:FOR?/D?%variable?IN?(set)?DO?command?[command-parameters] ?? 這個參數主要用于目錄搜索,不會搜索文件,/D?參數只能顯示當前目錄下的目錄名字。(TTT特別說明:只會搜索指定目錄下的目錄,不會搜索再下一級的目錄。) ???? TTT示例: ?? for?/d?%%i?in?(c:\*)?do?echo?%%i??--顯示c盤根目錄下的所有目錄 ?? for?/d?%%i?in?(???)?do?echo?%%i??--顯示當前目錄下名字只有1-3個字母的目錄 ???? === ?? 二、參數?/R?(搜索指定路徑及所有子目錄中與set相符合的所有文件) ?? --- ?? 格式:FOR?/R?[[drive:]path]?%variable?IN?(set)?DO?command?[command-parameters] ?? 此命令會搜索指定路徑及所有子目錄中與set相符合的所有文件,注意是指定路徑及所有子目錄。 ???? 1、set中的文件名如果含有通配符(?或*),則列舉/R參數指定的目錄及其下面的所用子目錄中與set相符合的所有文件,無相符文件的目錄則不列舉。 ?? 2、如果set中為具體文件名,不含通配符,則枚舉該目錄樹(即列舉該目錄及其下面的所有子目錄)(并在后面加上具體的文件名),而不管set中的指定文件是否存在。 ?? 例:for?/r?c:\?%%i?in?(*.exe)?do?echo?%%i?--把C盤根目錄,和每個目錄的子目錄下面全部的EXE文件都列出來了!!!! ???? TTT示例: ?? for?/r?c:\?%%i?in?(boot.ini)?do?echo?%%i?--枚舉了c盤所有目錄 ?? for?/r?d:\backup?%%i?in?(1)?do?echo?%%i??--枚舉d\backup目錄 ?? for?/r?c:\?%%i?in?(boot.ini)?do?if?exist?%%i?echo?%%i??--很好的搜索命令,列舉boot.ini存在的目錄 ???? === ?? 三、參數?/L?(該集表示以增量形式從開始到結束的一個數字序列。可以使用負的?Step) ?? --- ?? 格式:FOR?/L?%variable?IN?(start,step,end)?DO?command?[command-parameters] ?? 該集表示以增量形式從開始到結束的一個數字序列。可以使用負的?Step ???? TTT示例: ?? for?/l?%%i?in?(1,1,5)?do?@echo?%%i??--輸出1?2?3?4?5 ?? for?/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個CMD窗口 ?? for?/l?%%i?in?(1,1,5)?do?md?%%i??--建立從1~5共5個文件夾 ?? for?/l?%%i?in?(1,1,5)?do?rd?/q?%%i??--刪除從1~5共5個文件夾 ??????
轉載于:https://blog.51cto.com/batcracker/678137
總結
以上是生活随笔為你收集整理的DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。