for語句從入門到精通
一 前言
二 for語句的基本用法
三 for /f 含變量延遲
四 for /r
五 for /d
六 for /l
一、前言
在批處理中,for是最為強大的命令語句,它的出現,使得解析文本內容、遍歷文件路徑、數值遞增/遞減等操作成為可能;配合if、call、goto等流程控制語句,更是可以實現腳本復雜的自動化、智能化操作;合理使用for語句,還能使代碼大為簡化,免除各位編寫大量重復語句之苦。而能否熟練使用for語句,已經成為衡量一個人批處理水平高低最主要的標準。
在這個系列教程中,我將通過實際應用中頻繁出現的例子,帶領大家步入for語句的神奇之門,一步步邁向for語句的魔幻殿堂,使得大家在實際的應用中,能獨立寫出簡潔高效的代碼,在批處理的世界里自由馳騁。
注意:以下的講解,都是基于簡體中文Windows XP Pro SP3的操作系統環境
二、for語句的基本用法[2008.11.9更新]
正如色彩繽紛的七彩光芒是由紅綠藍三原色構成的一樣,最復雜的for語句,也有其基本形態,它的模樣是這樣的:
在cmd窗口中:for %I in (command1) do command2
在批處理文件中:for %%I in (command1) do command2
之所以要區分cmd窗口和批處理文件兩種環境,是因為在這兩種環境下,命令語句表現出來的行為雖然基本一樣,但是在細節上還是稍有不同,最明顯的一個差異就是:在cmd窗口中,for之后的形式變量I必須使用單百分號引用,即%I;而在批處理文件中,引用形式變量I必須使用雙百分號,即%%I。為了方便起見,若不是特別強調,以下的講解都以批處理文件環境為例。
我們先來看一下for語句的基本要素都有些什么:
1、for、in和do是for語句的關鍵字,它們三個缺一不可;
2、%%I是for語句中對形式變量的引用,就算它在do后的語句中沒有參與語句的執行,也是必須出現的;
3、in之后,do之前的括號不能省略;
4、command1表示字符串或變量,command2表示字符串、變量或命令語句;
現在,你可能已經會寫一個簡單的for語句了,比如:
@echo offfor %%I in (bbs.bathome.cn) do echo %%Ipause
保存為批處理文件并執行,將會在彈出的批處理窗口中看到這樣的信息:
[result1]
bbs.bathome.cn
請按任意鍵繼續...
很快地,你會覺得這個for語句是如此的簡單,簡單到你絲毫感受不出它的強大:這個for語句,和我直接用echo語句沒什么兩樣??!
是的,演示代碼永遠都只是演示而已,就像大多數高級語言的教科書一樣,在引導新手學習的時候,基本上都是千篇一律地告訴大家如何編寫一個能顯示 hello world! 的窗口,從這些演示代碼中,你看不到它們具有多少實用性,你只是感到有點好奇:咦,居然彈出了一個窗口?片刻之后,你就會覺得索然無味。
新聞熱點
疑難解答