[[/S] [/C | /K] string]
其中:CMD是不可缺少的!
/C 執行字符串指定的命令然後終斷
/K 執行字符串指定的命令但保留
/S 在 /C 或 /K 後修改字符串處理(見下)
/Q 關閉回應
/D 從註冊表中停用執行 AutoRun 命令(見下)
/A 使向內部管道或文件命令的輸出成為 ANSI
/U 使向內部管道或文件命令的輸出成為 Unicode
/T:fg 設置前景/背景顏色(詳細信息,請見 COLOR /?)
/E:ON 啟用命令擴展(見下)
/E:OFF 停用命令擴展(見下)
/F:ON 啟用文件和目錄名稱完成字符 (見下)
/F:OFF 停用文件和目錄名稱完成字符(見下)
/V:ON 將 ! 作為定界符啟動延緩環境變量擴展。如: /V:ON 會允許 !var! 在執行時允許 !var! 擴展變量 var。var 語法在輸入時擴展變量,這與在壹個 FOR 循環內不同。
/V:OFF 停用延緩的環境擴展。
請註意,如果字符串有引號,可以接受用命令分隔符 '&&' 隔開的多個命令。並且,由於兼容原因,/X 與 /E:ON 相同,/Y 與/E:OFF 相同,並且 /R 與 /C 相同。忽略任何其他命令行開關。如果指定了 /C 或 /K,命令行開關後的命令行其余部分將作為命令行處理;在這種情況下,會使用下列邏輯處理引號字符("):
1.如果符合下列所有條件,那麽在命令行上的引號字符將被
保留:
- 不帶 /S 命令行開關
- 整整兩個引號字符
- 在兩個引號字符之間沒有特殊字符,特殊字符為下列中的
壹個: <>()@^|
- 在兩個引號字符之間有至少壹個空白字符
- 在兩個引號字符之間有至少壹個可執行文件的名稱。
2.否則,看第壹個字符是否是壹個引號字符,如果是,舍去開頭的字符並刪除命令行上 的最後壹個引號字符,保留最後壹個引號字符之後的文字。
如果 /D 未在命令行上被指定,當 CMD.EXE 開始時,它會尋找以下 REG_SZ/REG_EXPAND_SZ 註冊表變量。如果其中壹個或兩個都存在,這兩個變量會先被執行。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
和/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun命令擴展是按默認值啟用的。您也可以使用 /E:OFF,為某壹特定調用而停用擴展。您可以在機器上和/或用戶登錄會話上啟用或停用 CMD.EXE 所有調用的擴展,這要通過設置使用REGEDT32.EXE 的註冊表中的壹個或兩個 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
和/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
到 0x1 或 0x0。用戶特定設置比機器設置有優先權。命令行開關比註冊表設置有優先權。以上是對於基本命令的介紹,下面包含的是命令行擴展部分。延遲變量環境擴展不按默認值啟用。您可以用/V:ON 或 /V:OFF
命令行開關,為 CMD.EXE 的某個調用而啟用或停用延遲環境變量擴充。
您可以在機器上和/或用戶登錄會話上啟用或停用 CMD.EXE 所有調用的完成,這要通過設置使用 REGEDT32.EXE 的註冊表中的壹個或兩個 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedEXPansion
和/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedEXPansion
到 0x1 或 0x0。用戶特定設置比機器設置有優先權。命令行開關比註冊表設置有優先權。
如果延遲環境變量擴充被啟用,驚嘆號字符可在執行時間,被用來代替壹個環境變量的數值。文件和目錄名完成不按默認值啟用。您可以用 /F:ON 或 /F:OFF命令行開關,為 CMD.EXE 的某個調用而啟用或停用文件名完成。 您可以在機器上和/或用戶登錄會話上啟用或停用 CMD.EXE 所有調用的完成,這要通過設置使用 REGEDT32.EXE 的註冊表中的壹個或兩個REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar
和/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
由壹個控制字符的十六進制值作為壹個特定參數(例如,0x4 是Ctrl-D,0x6 是 Ctrl-F)。 用戶特定設置優先於機器設置。命令行開關優先於註冊表設置。
如果完成是用 /F:ON 命令行開關啟用的,兩個要使用的控制符是: 目錄名字完成用 Ctrl-D, 文件名完成用 Ctrl-F。 要停用註冊表中的某個字符,請用空格(0x20)的數值,因為此字符不是控制字符。
如果鍵入兩個控制字符中的壹個,完成會被調用。完成功能將路徑字符串帶到光標的左邊,如果沒有通配符,將通配符附加到左邊,並建立相符的路徑列表。然後,顯示第壹個相符的路徑。如果沒有相符的路徑,則發出嘟嘟聲,不影響顯示。之後,重復按同壹個控制字符會循環顯示相符路徑的列表。將 Shift 鍵跟控制字符同時按下,會倒著顯示列表。如果對該行進行了任何編輯,並再次按下控制字符,保存的相符路徑的列表會被丟棄,新的會被生成。如果在文件和目錄名完成之間切換,會發生同樣現象。兩個控制字符之間的唯壹區別是文件完成字符符合文件和目錄名,而目錄完成字符只符合目錄名。如果文件完成被用於內置式目錄命令(CD、MD 或 RD),就會使用目錄完成。
將引號將相符路徑括起來,完成代碼可以正確處理含有空格或其他特殊字符的文件名。同時,如果備份,然後從行內調用文件完成,完成被調用是位於光標右方的文字會被丟棄。
需要引號的特殊字符是:
&()[]{}^=;!'+,`~
下面是命令行擴展的詳細應用方法介紹:熟悉dos的朋友會發現許多內容和dos相同。
1、DEL 或 ERASE
刪除壹個或數個文件。
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
names 指定壹個或數個文件或目錄列表。通配符可被用來
刪除多個文件。如果指定了壹個目錄,目錄中的所
有文件都會被刪除。
/P 刪除每壹個文件之前提示確認。
/F 強制刪除只讀文件。
/S 從所有子目錄刪除指定文件。
/Q 安靜模式。刪除全局通配符時,不要求確認。
/A 根據屬性選擇要刪除的文件。
attributes R 只讀文件 S 系統文件
H 隱藏文件 A 存檔文件
- 表示“否”的前綴
如果命令擴展名被啟用,DEL 和 ERASE 會如下改變:
/S 開關的顯示句法會顛倒,即只顯示已經刪除的文件,而不顯示找不到的文件。
2、COLOR
設置默認的控制臺前景和背景顏色。
COLOR [attr]
attr 指定控制臺輸出的顏色屬性
顏色屬性由兩個十六進制數字指定 -- 第壹個為背景,第二個則為
前景。每個數字可以為以下任何值之壹:
0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 湖藍色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色
如果沒有給定任何參數,該命令會將顏色還原到 CMD.EXE 啟動時的顏色。這個值來自當前控制臺窗口、/T 開關或DefaultColor 註冊表值。
如果用相同的前景和背景顏色來執行 COLOR 命令,COLOR 命令會將 ERRORLEVEL 設置為 1。
例如: "COLOR fc" 在亮白色上產生亮紅色
3、CD 或 CHDIR
顯示當前目錄名或改變當前目錄。
CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]
.. 指定要改成父目錄。
鍵入 CD 驅動器: 顯示指定驅動器中的當前目錄。
不帶參數只鍵入 CD,則顯示當前驅動器和目錄。
使用 /D 命令行開關,除了改變驅動器的當前目錄之外,
還可改變當前驅動器。
如果擴展命令名被啟用,CHDIR 會如下改變:
當前的目錄字符串會被轉換成使用磁盤名上的大小寫。所以,如果磁盤上的大小寫如此,CD C : \TEMP 會將當前目錄設為C:\Temp。
CHDIR 命令不把空格當作分隔符,因此有可能將目錄名改為壹個帶有空格但不帶有引號的子目錄名。例如:
cd \Winnt\profiles\username\programs\start menu
與下列相同:
cd "\Winnt\profiles\username\programs\start menu"
在擴展功能停用的情況下,您必須鍵入以上命令。
4、MD 或 MKDIR
創建目錄。
MKDIR [drive:]path
MD [drive:]path
如果命令擴展名被啟用,MKDIR 會如下改變:
如果需要,MKDIR 會在路徑中創建中級目錄。例如: 假設 \a 不存在,那麽:
mkdir \a\b\c\d
與:
mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
相同。如果擴展名被停用,則需要鍵入 mkdir \a\b\c\d。
5、PROMPT
更改 cmd.exe 命令提示符。
PROMPT [text]
text 指定新的命令提示符。
提示符可以由普通字符及下列特定代碼組成:
$A & (短 and 符號)
$B | (管道)
$C ( (左括弧)
$D 當前日期
$E Escape code (ASCII 碼 27)
$F ) (右括弧)
$G > (大於符號)
$H Backspace (擦除前壹個字符)
$L < (小於符號)
$N 當前驅動器
$P 當前驅動器及路徑
$Q = (等號)
$S (空格)
$T 當前時間
$V Windows XP 版本號
$_ 換行
$$ $ (貨幣符號)
如果命令擴展名被啟用,PROMPT 命令會支持下列格式化字符:
$+ 根據 PUSHD 目錄堆棧的深度,零個或零個以上加號(+)字符;每個被推的層有壹個字符。
$M 如果當前驅動器不是網絡驅動器,顯示跟當前驅動器號或空字符串有關聯的遠程名。
6、PUSHD
保存當前目錄以供 POPD 命令使用,然後改到指定的目錄。
PUSHD [path | ..]
path 指定要成為當前目錄的目錄。
如果命令擴展名被啟用,除了壹般驅動器號和路徑,PUSHD命令還接受網絡路徑。如果指定了網絡路徑,PUSHD 將創建壹個指向指定網絡資源的臨時驅動器號,然後再用剛定義的驅動器號改變當前的驅動器和目錄。可以從 Z: 往下分配臨時驅動器號,使用找到的第壹個沒有用過的驅動器號。
7、POPD
命令選項到保存在 PUSHD 命令裏的目錄。
POPD
如果命令擴展名被啟用,從推目錄堆棧 POPD 驅動器時,POPD命令會刪除 PUSHD 創建的臨時驅動器號。
8、SET
顯示、設置或刪除 cmd.exe 環境變量。
SET [variable=[string]]
variable 指定環境變量名。
string 指定要指派給變量的壹系列字符串。
要顯示當前環境變量,鍵入不帶參數的 SET。
如果命令擴展名被啟用,SET 會如下改變:
可僅用壹個變量激活 SET 命令,等號或值不顯示所有前綴匹配SET命令已使用的名稱的所有變量的值。例如:
SET P
會顯示所有以字母 P 打頭的變量如果在當前環境中找不到該變量名稱,SET 命令將把 ERRORLEVEL
設置成 1。
SET 命令不允許變量名含有等號。
在 SET 命令中添加了兩個新命令行開關:
SET /A eXPression
SET /P variable=[promptString]
/A 命令行開關指定等號右邊的字符串為被評估的數字表達式。該表達式評估器很簡單並以遞減的優先權順序支持下列操作:
() - 分組
! ~ - - 壹元運算符
* / % - 算數運算符
+ - - 算數運算符
<< >> - 邏輯移位
- 按位“與”
^ - 按位“異”
| - 按位“或”
= *= /= %= += -= - 賦值
&= ^= |= <<= >>=
- 表達式分隔符
如果您使用任何邏輯或取余操作符, 您需要將表達式字符串用引號擴起來。在表達式中的任何非數字字符串鍵作為環境變量名稱,這些環境變量名稱的值已在使用前轉換成數字。如果指定了壹個環境變量名稱,但未在當前環境中定義,那麽值將被定為零。這使您可以使用環境變量值做計算而不用鍵入那些 % 符號來得到它們的值。如果 SET /A 在命令腳本外的命令行執行的,那麽它顯示該表達式的最後值。該分配的操作符在分配的操作符左邊需要壹個環境變量名稱。除十六進制有 0x 前綴,八進制有 0 前綴的,數字值為十進位數字。因此, 0x12 與 18 和 022相同。請註意八進制公式可能很容易搞混: 08 和 09 是無效的數字,因為 8 和 9 不是有效的八進制位數。
/P 命令行開關允許將變量數值設成用戶輸入的壹行輸入。讀取輸入行之前,顯示指定的 promptString。promptString 可以是空的。
環境變量替換已如下增強:
%PATH:str1=str2%
會擴展 PATH 環境變量,用 "str2" 代替擴展結果中的每個 "str1"。
要有效地從擴展結果中刪除所有的 "str1","str2" 可以是空的。
"str1" 可以以星號打頭;在這種情況下,"str1" 會從擴展結果的開始到 str1 剩余部分第壹次出現的地方,都壹直保持相配。
也可以為擴展名指定子字符串。
%PATH:~10,5%
會擴展 PATH 環境變量,然後只使用在擴展結果中從第 11 個(偏移量 10)字符開始的五個字符。如果沒有指定長度,則采用默認值,即變量數值的余數。如果兩個數字(偏移量和長度)都是負數,使用的數字則是環境變量數值長度加上指定的偏移量或長度。
%PATH:~-10%
會提取 PATH 變量的最後十個字符。
%PATH:~0,-2%
會提取 PATH 變量的所有字符,除了最後兩個。
終於添加了延遲環境變量擴充的支持。該支持總是按默認值被停用,但也可以通過 CMD.EXE 的 /V 命令行開關而被啟用/停用。
考慮到讀取壹行文本時所遇到的目前擴充的限制時,延遲環境變量擴充是很有用的,而不是執行的時候。以下例子說明直接變量擴充的問題:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "%VAR%" == "after" @echo If you see this, it worked
)
不會顯示消息,因為在讀到第壹個 IF 語句時,BOTH IF 語句中的 %VAR% 會被代替;原因是: 它包含 IF 的文體,IF 是壹個復合語句。所以,復合語句中的 IF 實際上是在比較 "before" 和"after",這兩者永遠不會相等。同樣,以下這個例子也不會達到預期效果:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
原因是它不會在目前的目錄中建立壹個文件列表,而只是將LIST 變量設成找到的最後壹個文件。這也是因為 %LIST% 在FOR 語句被讀取時,只被擴充了壹次;而且,那時的 LIST 變量是空的。因此,我們真正執行的 FOR 循環是:
for %i in (*) do set LIST= %i
這個循環繼續將 LIST 設成找到的最後壹個文件。
延遲環境變量擴充允許您使用壹個不同的字符(驚嘆號)在執行時間擴充環境變量。如果延遲的變量擴充被啟用,可以將上面例子寫成以下所示,以達到預期效果:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo If you see this, it worked
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
如果命令擴展名被啟用,有幾個動態環境變量可以被擴展,但不會出現在 SET 顯示的變量列表中。每次變量數值被擴展時,這些變量數值都會被動態計算。如果用戶用這些名稱中任何壹個定義變量,那個定義會替代下面描述的動態定義:
%CD% - 擴展到當前目錄字符串。
%DATE% - 用跟 DATE 命令同樣的格式擴展到當前日期。
%TIME% - 用跟 TIME 命令同樣的格式擴展到當前時間。
%RANDOM% - 擴展到 0 和 32767 之間的任意十進制數字。
%ERRORLEVEL% - 擴展到當前 ERRORLEVEL 數值。
%CMDEXTVERSION% - 擴展到當前命令處理器擴展名版本號。
%CMDCMDLINE% - 擴展到調用命令處理器的原始命令行。
9、SETLOCAL
開始批處理文件中環境改動的本地化操作。在執行 SETLOCAL 之後所做的環境改動只限於批處理文件。要還原原先的設置,必須執行 ENDLOCAL。達到批處理文件結尾時,對於該批處理文件的每個尚未執行的 SETLOCAL 命令,都會有壹個隱含的 ENDLOCAL 被執行。
SETLOCAL
如果命令擴展名被啟用,SETLOCAL 會如下改變:
SETLOCAL 批命令現在可以接受可選參數:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
啟動或停用命令處理器擴展名。詳細信息,請參閱 CMD /?。
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
啟動或停用延緩環境變量擴展名。詳細信息,請
參閱 對SET的介紹 。
無論在 SETLOCAL 命令之前它們的設置是什麽,這些修改會壹直保留到匹配的 ENDLOCAL 命令。
如果有壹個參數,SETLOCAL 命令將設置 ERRORLEVEL 的值。
如果有兩個有效參數中的壹個,該值則為零。用下列技巧,您可以在批腳本中使用這個來決定擴展名是否可用:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Unable to enable extensions
這個方法之所以有效,是因為在 CMD.EXE 的舊版本上,SETLOCAL不設置 ERRORLEVEL 值。具有不正確參數的 VERIFY 命令將ERRORLEVEL 值初始化成非零值。
10、ENDLOCAL
結束批處理文件中環境改動的本地化操作。在執行ENDLOCAL 之後所做的環境改動不再僅限於批處理文件。批處理文件結束後,原先的設置無法還原。
ENDLOCAL
如果命令擴展名被啟用,ENDLOCAL 會如下改變:
如果相應的 SETLOCAL 用新的 ENABLEEXTENSIONS 或DISABLEEXTENSIONS 選項啟用或停用了命令擴展名,那麽,在ENDLOCAL 之後,命令擴展名的啟用/停用狀態會還原到執行相應的 SETLOCAL 命令前的狀態。
11、IF
執行批處理程序中的條件處理。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT 指定只有條件為 false 的情況下, Windows XP 才
應該執行該命令。
ERRORLEVEL number 如果最後運行的程序返回壹個等於或大於指定數字的退出編碼,指定條件為 true。
string1==string2 如果指定的文字字符串匹配,指定條件為 true。
EXIST filename 如果指定的文件名存在,指定條件為 true。
command 如果符合條件,指定要執行的命令。如果指定的
條件為 FALSE,命令後可跟壹個執行 ELSE
關鍵字後的命令的 ELSE 命令。
ELSE 子句必須在 IF 之後出現在同壹行上。例如:
IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)
因為 del 命令需要用壹個新行終止,以下子句不會有效:
IF EXIST filename. del filename. ELSE echo filename. missing
由於 ELSE 命令必須與 IF 命令的尾端在同壹行上,以下子句也不會有效:
IF EXIST filename. del filename.
ELSE echo filename. missing
如果都放在同壹行上,以下子句有效:
IF EXIST filename. (del filename.) ELSE echo filename. missing
如果命令擴展名被啟用,IF 會如下改變:
IF [/I] string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command
其中,比較運算符可以是:
EQU - 等於
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於
及 /I 開關;如果該開關被指定,則說明要進行的字符串比較不分大小寫。/I 開關可以用於 IF 的 string1==string2 的形式上。這些比較都是通用的;原因是,如果 string1 和 string2 都是由數字組成的,字符串會被轉換成數字,進行數字比較。
CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的壹樣,除了它是在跟與命令擴展名有關聯的內部版本號比較。第壹個版本是 1。每次對命令擴展名有相當大的增強時,版本號會增加壹個。
命令擴展名被停用時,CMDEXTVERSION 條件不是真的。
如果已定義環境變量,DEFINED 條件的作用跟 EXISTS 的壹樣,除了它取得壹個環境變量,返回的結果是 true。
如果沒有名為 ERRORLEVEL 的環境變量,%ERRORLEVEL%會擴充為 ERROLEVEL 當前數值的字符串表達式;否則,您會得到其數值。運行程序後,以下語句說明 ERRORLEVEL 的用法:
goto answer%ERRORLEVEL%
:answer0
echo Program had return code 0
:answer1
echo Program had return code 1
您也可以使用以上的數字比較:
IF %ERRORLEVEL% LEQ 1 goto okay
如果沒有名為 CMDCMDLINE 的環境變量,%CMDCMDLINE%將在 CMD.EXE 進行任何處理前擴充為傳遞給 CMD.EXE 的原始命令行;否則,您會得到其數值。
如果沒有名為 CMDEXTVERSION 的環境變量,%CMDEXTVERSION% 會擴充為 CMDEXTVERSION 當前數值的
字串符表達式;否則,您會得到其數值。
12、FOR
FOR %variable IN (set) DO command [command-parameters]
%variable 指定壹個單壹字母可替換的參數。
(set) 指定壹個或壹組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters
為特定命令指定參數或命令行開關。
在批處理文件中使用 FOR 命令時,指定變量請使用 %%variable而不要用 %variable。變量名稱是區分大小寫的,所以 %i 不同於 %I.如果命令擴展名被啟用,下列額外的 FOR 命令格式會受到支持:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的FOR 語句。如果在 /R 後沒有指定目錄,則使用當前目錄。如果集僅為壹個單點(.)字符,則枚舉該目錄樹。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
該集表示以增量形式從開始到結束的壹個數字序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生序列 (5 4 3 2 1)。
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
或者,如果有 usebackq 選項:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
filenameset 為壹個或多個文件名。繼續到 filenameset 中的下壹個文件之前,每份文件都已被打開、讀取並經過處理。
處理包括讀取文件,將其分成壹行行的文字,然後將每行解析成零或更多的符號。然後用已找到的符號字符串變量值調用 For 循環。以默認方式,/F 通過每個文件的每壹行中分開的第壹個空白符號。跳過空白行。您可通過指定可選 "options"參數替代默認解析操作。這個帶引號的字符串包括壹個或多個指定不同解析選項的關鍵字。這些關鍵字為:
eol=c - 指壹個行註釋字符的結尾(就壹個)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。
tokens=x,y,m-n - 指每行的哪壹個符號被傳遞到每個叠代的 for 本身。這會導致額外變量名稱的分配。m-n格式為壹個範圍。通過 nth 符號指定 mth。如果符號字符串中的最後壹個字符星號,那麽額外的變量將在最後壹個符號解析之後分配並接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執行壹個後引號的字符串並且壹個單引號字符為文字字符串命令並允許在 filenameset中使用雙引號擴起文件名稱。
某些範例可能有助:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
會分析 myfile.txt 中的每壹行,忽略以分號打頭的那些行,將每行中的第二個和第三個符號傳遞給 for 程序體;用逗號和/或空格定界符號。請註意,這個 for 程序體的語句引用 %i 來取得第二個符號,引用 %j 來取得第三個符號,引用 %k來取得第三個符號後的所有剩余符號。對於帶有空格的文件名,您需要用雙引號將文件名括起來。為了用這種方式來使用雙引號,您還需要使用 usebackq 選項,否則,雙引號會被理解成是用作定義某個要分析的字符串的。
%i 專門在 for 語句中得到說明,%j 和 %k 是通過tokens= 選項專門得到說明的。您可以通過 tokens= 壹行指定最多 26 個符號,只要不試圖說明壹個高於字母 'z' 或'Z' 的變量。請記住,FOR 變量是單壹字母、分大小寫和全局的;而