DOS 命令速查

ASSOC
顯示或修改副檔名的關聯

ASSOC [.ext[=[fileType]]]

.ext 指定副檔名,使檔案類型與
fileType 產生關聯 指定檔案類型,以便和副檔名產生關聯。

鍵入 ASSOC 並且不加任何的參數,以顯示目前的檔案關聯性。如果
ASSOC 只呼叫一個副檔名,它將會顯示該副檔名目前的檔案關聯性。
如果不指定檔案類型,命令便會將副檔名的關聯性刪除。


AT
AT 命令排定某些命令或程式在某個特定的日期和時間,在電腦上執行。
執行 AT 命令之前必須先啟動 Schedule 服務。


AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername 指定遠端電腦。
如果省略這個參數,命令會被排定在本機上執行。
id 指定給排定時程命令的識別碼。

/delete 刪除某個已排程的命令。如果省略 id,所有電腦上已排程的
命令都會被刪除。
/yes 用於刪除所有已排程的工作,且不想在執行刪除時顯示確認訊息
使用。
time 指定命令執行的時間。
/interactive 允許工作在執行時,與當時登入的用戶互動。

/every:date[,...] 指定在每週或每月的某日 (或某幾日) 執行命令。
如果省略日期,則預設為在每月的本日執行。

/next:date[,...] 指定在下一次的指定日期 (如,下週三) 時,執行命令。
如果省略日期,則預設為在每月的本日執行。

"command" 準備執行的 Windows NT 命令或批次檔。



ATTRIB
顯示或變更檔案屬性。

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:][path][filename]
[/S [/D]]

+ 設定屬性。
- 清除屬性。
R 唯讀檔案屬性。
A 保存檔案屬性。
S 系統檔案屬性。
H 隱藏檔案屬性。[drive:][path][filename]
指定一個或一個以上的檔案給 attrib 處理。
/S 處理目前的資料夾及所有子資料夾中相
符的檔案。
/D 一併處理資料夾。



BREAK
設定或清除 DOS 系統的延伸 CTRL+C 檢查

這是為了與 DOS 系統的相容性而保留,在 Windows XP 裡沒有作用。

如果您啟用擴充命令,並在 Windows XP
平台執行時,那麼 BREAK 命令會在以偵錯程式偵錯時
輸入一個硬式編碼中斷點。


CACLS
顯示或修改檔案的存取控制清單 (ACLs)



CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]

[/P user:perm [...]] [/D user [...]]

filename 顯示 ACL。

/T 變更指定檔案的 ACL 於

現有的目錄或所有子目錄中。

/E 編輯 ACL 而非將它取代。

/C 拒絕存取的錯誤繼續發生。

/G user:perm 授與指定的使用者存取權限。

Perm 的值可以是: R 讀取

C 變更 (寫入)

F 完全控制

/R user 撤銷已指定的使用者存取權限 (只有當 /E 存在時才有效)。

/P user:perm 取代已指定的使用者存取權限。

Perm 的值可以是: N 沒有權限

R 讀取

C 變更 (寫入)

F 完全控制

/D user 拒絕已指定的使用者存取。

您可以在命令中使用萬用字元一次指定數個檔案。

您可以在命令中指定數個使用者。

縮寫:

CI - 容器繼承。

ACE 將被目錄繼承。

OI - 物件繼承。

ACE 將被檔案繼承。

IO - 僅供繼承。

ACE 不可套用到目前的檔案/目錄。



CALL
從批次程式中呼叫另一程式。

CALL [drive:][path]filename [batch-parameters]

batch-parameters 指定批次程式所需要的命令列資訊。

如果您啟用擴充命令,CALL 命令的變更如下:

CALL 命令現在可以用標籤來當作 CALL 命令的目標。語法為:

CALL :label arguments

這會用指定的 arguments 來建立一個新的批次檔檔案內容,而且控制權
會被傳到指定的 label 後的敘述。您必須 "exit" 兩次,因為批次檔
的結尾會被執行兩次。第一次您讀入批次檔結尾時,控制權會回到 CALL
描述的下一個敘述。而第二次則會結束批次檔的執行。請鍵入 GOTO /?
來獲得 GOTO :EOF 擴充命令的描述。 這個命令可以讓您從批次檔中
"return" 。

此外,批次檔參數的參考 (%0, %1,
及其他) 已經做了如下的擴充:


%* 在批次檔中,這代表所有的參數 (e.g. %1 %2 %3
%4 %5 ...)

批次參數的取代 (%n) 已經做了改進。 您現在可以
選用下列的語法:

%~1 - 展開 %1 且移除包圍的引號 (")
%~f1 - 展開 %1 為一個完全符合的路徑名稱
%~d1 - 只展開 %1 為磁碟機代號
%~p1 - 只展開 %1 為路徑
%~n1 - 只展開 %1 為檔名
%~x1 - 只展開 %1 為副檔名
%~s1 - 展開的路徑只包含短檔名
%~a1 - 展開 %1 為檔案的檔案屬性
%~t1 - 展開 %1 為檔案的日期/時間
%~z1 - 展開 %1 為檔案的長度
%~$PATH:1 - 搜尋所有列在 PATH 環境變數內的目錄
且展開 %1 為
第一個找到的完全符合檔名。
如果沒有定義環境變數名稱
或是搜尋找不到檔案,
則這個修飾元會展開成
空字串。

修正程式可合併使用,進而得到複合結果:

%~dp1 - 只擴充 %1 到磁碟機代號和路徑
%~nx1 - 只擴充 %1 到檔案名稱和副檔名
%~dp$PATH:1 - 搜尋 %1 的 PATH 環境
變數中所列的目錄,並擴充至
磁碟機代號和第一個找到的路徑。
%~ftza1 - 將 %1 擴充成 DIR ,和輸出行相同

在上例中,%1 和 PATH 可被其他有效值取代。%~ 語法是
以正確的引數數字作結尾。%~ 修正程式可能無法使用 %*


CD
顯示目前工作目錄的名稱或是變更目錄。

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

.. 指定變更到上層目錄。

鍵入 CD drive: 即可顯示指定磁碟機的目前工作目錄。
僅鍵入 CD 而不加參數,即可顯示目前的磁碟機和目錄。

使用 /D 參數可以同時變更工作磁碟機及其工作目錄。

如果您啟用擴充命令,CHDIR 的變更如下:

目前的目錄字串會被轉換成與磁碟上名稱相同大小寫的字串。
所以如果磁碟上的目錄是 C:\Temp 的話,CD C:\TEMP 命令實
際上會轉換為 CD C:\Temp。

CHDIR 命令不會將空格當成分隔字元,所以如果您要切換到含
有空格字元的目錄時,就算您不使用引號來括住目錄名稱,也
一樣可以用 CD 命令切換到該目錄。例如:

cd \winnt\profiles\username\programs\start menu

就相等於:

cd "\winnt\profiles\username\programs\start menu"

如果您停用擴充命令,就必須輸入前一種命令。


CHCP
顯示或設定使用中字碼頁編號。

CHCP [nnn]

nnn 指定字碼頁編號。

不加參數鍵入 CHCP 顯示使用中字碼頁編號。


CHDIR
顯示目前工作目錄的名稱或是變更目錄。

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

.. 指定變更到上層目錄。

鍵入 CD drive: 即可顯示指定磁碟機的目前工作目錄。
僅鍵入 CD 而不加參數,即可顯示目前的磁碟機和目錄。

使用 /D 參數可以同時變更工作磁碟機及其工作目錄。

如果您啟用擴充命令,CHDIR 的變更如下:

目前的目錄字串會被轉換成與磁碟上名稱相同大小寫的字串。
所以如果磁碟上的目錄是 C:\Temp 的話,CD C:\TEMP 命令實
際上會轉換為 CD C:\Temp。

CHDIR 命令不會將空格當成分隔字元,所以如果您要切換到含
有空格字元的目錄時,就算您不使用引號來括住目錄名稱,也
一樣可以用 CD 命令切換到該目錄。例如:

cd \winnt\profiles\username\programs\start menu

就相等於:

cd "\winnt\profiles\username\programs\start menu"

如果您停用擴充命令,就必須輸入前一種命令。


CHKDSK
檢查磁碟並顯示狀態報告。


CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]]


volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
filename 只能用在 FAT/FAT32: 指定要進行分散程度檢查的檔案。
/F 修復磁片上的錯誤。
/V FAT/FAT32 模式: 顯示磁碟上每個檔案的完整路徑
及名稱。
NTFS 模式: 如果有清除的訊息,也一併顯示。
/R 找出損壞的磁區並復原可讀取的資訊。
(包含 /F)。
/L:size 只適用於 NTFS 模式: 將記錄檔大小變更為指定的 KB
數值。如果沒有指定記錄檔大小,就顯示目前的大小。
/X 如果必須的話,強制先解下磁碟區。所有在
磁碟區上開啟的控制代碼都會失效 (包含 /F)。
/I 只適用於 NTFS 模式: 不檢查索引項目。
/C 只適用於 NTFS 模式: 跳過資料夾結構的循環檢查。


使用 /I 或 /C 參數跳過某些磁碟區檢查,可以在執行
Chkdsk 時減少檢查時間。


CHKNTFS
開機時顯示或修正磁碟檢查。

CHKNTFS volume [...]
CHKNTFS /D
CHKNTFS /T[:time]
CHKNTFS /X volume [...]
CHKNTFS /C volume [...]

volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
/D 將電腦還原成預設行為。會在啟動時對全部的磁
碟機進行檢查,有問題的磁碟機會執行 chkdsk。
/T:time 變更 AUTOCHK 倒數計時的時間成
指定的總計秒。如果時間沒有設定,
請顯示目前的設定。
/X 在預設開機檢查中排除磁碟檢查。被排除的
磁碟機不會保留在命令呼叫之間。
/C 進行開機時的磁碟檢查排程。如果
磁碟有問題,會執行 chkdsk。
/E 啟用 NTFS 磁碟區自動升級。升級後必需
重新開機。(這會啟用所有的 NTFS 進階
支援功能。)

如果沒有指定參數 , CHKNTFS 將顯示每台磁碟
有問題的位元狀態或是在下次重新開機時排程檢查。


CLS
清除螢幕。

CLS


CMD
啟動 Windows XP 命令直譯器新例項

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] string]

/C 執行字串中所描述的命令然後結束命令視窗
/K 執行 字串中所描述的命令然後保留命令視窗
/S 修改字串在 /C 或 /K (參看下方)
/Q 關閉 echo
/D 從登錄中停用 AutoRun 命令(參看下方)
/A 將內部命令輸出結果以 ANSI 格式導向 pipe 或檔案
/U 將內部命令輸出結果以 Unicode 格式導向 pipe 或檔案
/T:fg 設定幕前/幕後色彩 (參看 COLOR /?)
/E:ON 啟用命令延伸 (參看下方)
/E:OFF 停用命令延伸 (參看下方)
/F:ON 啟用檔案及目錄名稱完整字元(參看下方)
/F:OFF 停用檔案及目錄名稱完整字元(參看下方)
/V:ON 啟用延遲環境變數延伸,用 c 作為分隔字元。例如,
/V:ON 可以讓 !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\CommandProcessor\AutoRun

及/或

HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor\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。使用者指定設定的執行優先順序高於電腦上
的設定。命令列參數的執行優先順序高於登錄中的設定值。


擴充命令包括下列命令的變更及(或)
新增:

DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (也包括援用外部命令之變更)
ASSOC
FTYPE

請鍵入 HELP 命令名稱,以查閱說明。

預設狀態下,不會啟用延遲環境變數擴充。您可以
使用 /V:ON 或 /V:OFF 參數在執行 CMD.EXE 時啟用
或停用完整檔案名稱。您也可以用 REGEDT32.EXE 來
修改以下 REG_DWORD 值,來啟用或停用整個電腦上或
使用者登入工作階段中所有 CMD.EXE 的檔案名稱完整功能:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

及/或

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

其值可為 0x1 或 0x0。使用者指定設定的優先順序高於
電腦設定。命令列參數優先順序高於登錄設定值。

如果已啟用延遲環境變數擴充,驚嘆號字元會在執行時
被用來取代環境變數值。

預設無法啟用檔案和目錄名稱完成。 您可以為特定的 CMD.EXE 呼叫,以
/F:ON 或 /F:OFF 開關啟用或停用檔案名稱完成。 您可以啟用或停用在同
一部電腦上所有 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) 也等於使用了目錄完成功能。

如果您在路徑字串兩端加上引號,完成功能鍵就可正確處理包含空格或其他
特殊字元的檔案名稱。還有,如果您備份後,又在命令列中呼叫完成功能的
話,已呼叫過完成功能的指標右方的文字會被丟棄。

要求加上引號的特殊字元有:

&()[]{}^=;!'+,`~


COLOR
設定預設主控台的前景及背景色彩。

COLOR [attr]

attr 指定主控台輸出的色彩屬性。

色彩屬性由 TWO 十六進位數字所指定 -- 第一個對應於背景,第二個對應於
前景。每一數位可為以下其中一個值:

0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 藍綠色 B = 淡藍綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色

如果沒有指定引數,這個命令會還原成 CMD.EXE 啟動時的色彩。這個值可能
來自目前主控台視窗、/T 命令列參數或來自 DefaultColor 登錄值。

COLOR 命令設定 ERRORLEVEL 為 1,如果您嘗試執行
COLOR 命令,並指定相同的前景和背景色彩的話。

範例: "COLOR fc" 產生淡紅色於亮白色上


COMP
比較兩個檔案或兩組檔案的內容。

COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]]

data1 指定第一個或第一組要比較的檔案的位置與檔名。
data2 指定第二個或第二組要比較的檔案的位置與檔名。
/D 以十進位格式來顯示不同之處。
/A 以 ASCII 字元來顯示不同之處。
/L 顯示不同之處的行號。
/N=number 只比較每個檔案中第一個指定的行號。
/C 比較檔案時忽略 ASCII 字母的大小寫。
/OFF[LINE] 不要略過有離線屬性設定的檔案。

要比較一組檔案,請在 data1 和 data2 參數中使用萬用字元。


COMPACT
顯示或改變 NTFS 磁碟分割上的檔案壓縮。

COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [filename [...]]

/C 壓縮指定的檔案。將標示目錄使以後新增的檔案將被壓縮。
/U 解壓縮指定的檔案。將標示目錄使以後新增的檔案將不被解壓縮。
/S 對所給目錄及其所有子目錄下的檔案執行指定的作業,預設 "dir"
為目前的目錄。
/A 顯示有隱藏或系統屬性的檔案,這些檔案在預設中是被省略的。
/I 即使發生錯誤,仍繼續執行指定的操作。依預設,遇到錯誤時,
COMPACT 將停止。
/F 強迫壓縮所

CONVERT
將 FAT 磁碟區轉換為 NTFS。

CONVERT volume /FS:NTFS [/V] [/CvtArea:filename] [/NoSecurity] [/X]

volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
/FS:NTFS 指定將磁碟區轉換成 NTFS。
/V 指定在詳細訊息模式下執行轉換。
/CvtArea:filename
在根目錄中指定一個相連的檔案作為
NTFS 系統檔案的置放點。
/NoSecurity 指定已轉換的檔案和目錄的安全性
設定值能讓每個人存取。
/X 必要的話,強迫磁碟區先卸下。
所有已開啟的磁碟區控制碼將失效。


COPY
將一些檔案複製到另一個位置。

COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]

source 指定要複製的檔案。
/A 指定一個 ASCII 文字檔案。
/B 指定一個二位元檔案。
destination 為新檔案指定目錄及(或) 檔案名稱。
/V 確認新檔案是否正確寫入。
/N 使用短檔名來複製非 8.3 名稱的檔案
(如果可用的話)。
/Y 不顯示覆寫現存
目的檔案的確認提示。
/-Y 顯示覆寫現存目的
檔案的確認提示。
/Z 在可重新啟動模式中複製網路檔案。

參數 /Y 可以預先設定在 COPYCMD 環境變數中。
這可能會覆寫命令列中的 /-Y。預設值是
顯示覆寫確認提示,除非 COPY 命令是從
批次指令檔中執行。

如果要附加檔案,指定一個目的檔案,及數個
來源檔案 (使用萬用字元或 file1+file2+file3 格式)。


DATE
顯示或設定日期。

DATE [/T | date]

只鍵入 DATE 而不加上參數,可以顯示目前設定的日期,並且提示您輸入新的日
期。按 ENTER 鍵即可保持原來日期。

如果您啟用擴充命令,DATE 命令會支援 /T 參數,這個參數
會讓命令只輸出目前的日期,而不提示您輸入新日期。


DEL
刪除一個或更多檔案。

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 參數的顯示方式完全相反,它只會顯示已刪除的檔案,不會顯示它找不到的
檔案。


DIR
顯示檔案清單以列出目錄中的檔案及子目錄。

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

[drive:][path][filename]
指定要顯示的磁碟機、目錄或檔案。

/A 依照指定的檔案屬性來顯示檔案。
attributes D 目錄 R 唯讀檔
H 隱藏檔 A 保存檔
S 系統檔案 - 無意義
/B 使用單純格式 (沒有標頭資訊或摘要)。
/C 顯示檔案大小千位數分隔符號。這是
預設值。 使用 /-C 來停用分隔符號的顯示。
/D 與寬的列表格式相同,但是依照欄來排序。
/L 使用小寫顯示。
/N 使用新的長列表格式,檔名會顯示在最右方。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
/P 當資料填滿整個螢幕時暫停顯示。
/Q 顯示檔案擁有者。
/S 顯示指定目錄及所有子目錄中的檔案。
/T 指定用來顯示或排序的時間欄位
timefield C 建立
A 上次檔案存取時間
W 上次寫入檔案時間
/W 使用寬的列表格式。
/X 顯示對非 8.3 格式的檔案產生的短檔名。
這個格式和 /N 相同,但是短檔名會插入在
長檔名之前。 如果沒有長檔名存在,該處會
顯示空白。
/4 顯示四位數的年份

參數可能會在 DIRCMD 環境變數預先設定。您可以在任何參數使用連字號字首(-)
來覆蓋預先的設定--例如: /-W。


DISKCOMP
比較兩片磁片的內容。

DISKCOMP [磁碟機1: [磁碟機2:]]



DISKCOPY
把一片磁片的內容複製到另一片中。

DISKCOPY [磁碟機1: [磁碟機2:]] [/V]

/V 驗證訊息是否已正確複製。

兩片磁片的類型必須相同。
您可以把磁碟機 1 和磁碟機 2 指定成相同的磁碟機。


DOSKEY
編輯命令列,重新呼叫 Windows XP 命令,及建立巨集。

DOSKEY [/REINSTALL] [/LISTSIZE=size] [/MACROS[:ALL | :exename]]
[/HISTORY] [/INSERT | /OVERSTRIKE] [/EXENAME=exename] [/MACROFILE=filename]
[macroname=[text]]

/REINSTALL 安裝另一份 Doskey。
/LISTSIZE=size 設定命令歷程緩衝區的大小。
/MACROS 顯示所有的 Doskey 巨集。
/MACROS:ALL 顯示所有執行檔中含有 Doskey 巨集
的 Doskey 巨集。
/MACROS:exename 顯示指定的執行檔中的所有 Doskey 巨集。
/HISTORY 顯示存在記憶體中的所有命令。
/INSERT 指定您所鍵入的新文字插入在舊的文字中。
/OVERSTRIKE 指定您所鍵入的新文字覆蓋舊的文字。
/EXENAME=exename 指定執行檔。
/MACROFILE=filename 指定要安裝的巨集檔案。
macroname 為您建立的巨集指定名稱。
text 指定您要記錄的命令。

向上與向下鍵叫回以前的指令; ESC 清除命令列;
F7 顯示命令歷程; ALT+F7 清除命令列歷程; F8 尋找命令歷程;
F9 以號碼選擇命令; ALT+F10 清除巨集定義

以下是在 Doskey 巨集定義中的特殊碼:
$T 命令分隔字元。允許在一個巨集中使用多個命令。
$1-$9 批次檔參數。相當於批次檔中的 %1 到 %9。
$* 這個符號代表在命令列中巨集名稱後的所有文字。


ECHO
顯示訊息,或切換命令回應的開啟狀態。

ECHO [ON | OFF]
ECHO [message]

僅鍵入 ECHO 而不加上參數,可以顯示目前的 ECHO 設定。


ENDLOCAL
中止在批次檔案中的環境變更。在 ENDLOCAL 之後所做的環境變更已經送出,
對批次檔來說它不在本機上。批次檔終止時,並未還原到上一個設定值。

ENDLOCAL

如果您啟用擴充功能,ENDLOCAL 命令的變更如下:

如果對應的 SETLOCAL 藉由 ENABLEEXTENSIONS 或
DISABLEEXTENSIONS 選項啟用或停用擴充命令,則在
ENDLOCAL 執行後,擴充命令的已啟用/已停用狀態
將會還原到符合 SETLOCAL
命令執行前的狀態。


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 參數的顯示方式完全相反,它只會顯示已刪除的檔案,不會顯示它找不到的
檔案。


EXIT
結束 CMD.EXE 程式 (命令直譯器) 或目前的批次檔。

EXIT [/B] [exitCode]

/B 指定這個參數來結束目前批次檔而不是 CMD.EXE。
如果是由批次檔之外執行,CMD.EXE將會結束。

exitCode 指定一個數字。如果指定 /B,則設定 ERRORLEVEL
為這個數字。如果結束 CMD.EXE,設定程序結束碼
為這個數字。


FC
比較兩個檔案或兩組檔案並且顯示其中的不同之處


FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/U] [/W] [/nnnn] [drive1:][path1]filename1
[drive2:][path2]filename2
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2

/A 針對每組不同之處只要顯示其中的第一行和最後一行。
/B 使用二進位的內容比較。
/C 忽略字母的大小寫。
/L 以 ASCII 文字檔案方式來比較檔案。
/LBn 在指定的行數中設定容許的最多連續的檔案
不相符。
/N 在 ASCII 方式的比較中顯示行數。
/T 不要將定位字元展開為空格。
/U 以 UNICODE 文字檔案方式來比較檔案。
/W 將空白字元 (定位字元和空格) 壓縮後再進行比較。
/nnnn 指定在一處不相同之後必須相同的連
續行數。
[drive1:][path1]filename1
指定要比較的第一個檔案或第一組檔案。
[drive2:][path2]filename2
指定要比較的第二個檔案或第二組檔案。



FIND
搜尋檔案中的文字字串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

/V 顯示所有不包含指定字串的行。
/C 只顯示包含字串的行數。
/N 顯示每一行及它的行號。
/I 當搜尋字串時,忽略字元的大小寫。
/OFF[LINE] 不要略過有離線屬性設定的檔案。
"string" 指定要尋找的文字字串。
[drive:][path]filename
指定要尋找的檔案。

如果沒有指定路徑,FIND 會搜尋在提示字元中所輸入的文字
或者在其他的命令中搜尋。


FINDSTR
在檔案中搜尋字串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
字串 [[drive:][path]filename[ ...]]

/B 如果是在行的開端,則符合類型。
/E 如果是在行的尾端,則符合類型。
/L 逐字使用搜尋字串。
/R 使用搜尋字串為一般表示式。
/S 在現存目錄及所有的子目錄中
搜尋符合的檔案。
/I 指定搜尋不區分大小寫。
/X 列印完全符合的行數。
/V 只列印不含相符字串的行數。
/N 列印每一行符合的行數前的行編號。
/M 只列印包含相符字串的檔案的檔案名稱。
/O 列印每一個相符行之前的字元位移。
/P 略過沒有可列印字元的檔案
/OFF[LINE] 不要略過有離線屬性組的檔案。
/A:attr 指定有兩個十六進位數字的色彩屬性。請參考 "color /?"
/F:file 從指定的檔案 (/ 代表主控台) 讀取檔案清單。
/C:string 使用特定的字串作為逐字搜尋的字串。
/G:file 從指定的檔案取得搜尋字串(/ 代表主控台)。
strings 要搜尋的文字。
[drive:][path]filename
指定要搜尋的一個或多個檔案。

除非引數的字首有 /C ,否則請以空格將多重搜尋
字串分開。例如,'FINDSTR "hello there" x.y' 將會在檔案 x.y 中搜尋 "hello",或
"there"。'FINDSTR /C:"hello there" x.y' 將會在檔案 x.y 中搜尋
"hello there"。

有關 FINDSTR 一般表示式的資訊,請參閱連線
命令參照。


FOR
對一組檔案中的每個檔案執行指定的命令。

FOR %variable IN (set) DO 命令 [command-parameters]

%variable 指定一個可以取代的參數。
(set) 指定由一或多個檔案組成的檔案組。您可使用通配字元。
command 指定命令來執行每一個檔案。
command-parameters
為所指定的命令指定變數或參數。

如果要在批次程式中使用 FOR 命令,請指定 %%variable,而不要指定
%variable。 變數名稱有大小寫的區分,所以 %i 不同於 %I。

如果您啟用擴充命令,則額外支援下列的 FOR 命令
格式:

FOR /D %variable IN (set) DO command [command-parameters]

如果 set 中包含萬用字元,則指定與目錄
名稱相符,而不是與檔案名稱相符。

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

在樹狀目錄中切換 [drive:]路徑,並於樹狀目錄的每一個目錄下執行
FOR 陳述式。如果未在 /R 之後指定目錄規格,則採用目前的目錄。
如果 set 只是單一句點 (.) 字元,則它只會列舉樹狀目錄結構。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

set 是從開頭到結尾一次跳一步的連續數字。所以 (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 可以是一個以上的檔案名稱。每個檔案都已開啟,
讀取及處理過,才繼續進行下個檔案名稱組。處理檔案讀取的一致
性,將它分成獨立的文字行,然後將每一行分析成零或更多的字串。
用已找到的字串值為變數值,來呼叫 For 迴圈的內容。預設狀態,
/F 傳出每個檔案的每一行中,以空格分隔的第一個字串。空白行
會被略過。您可以指定 "options" 參數來覆寫預設的分析行為。
這是有引號的字串,包含一個以上的關鍵字,來指定不同的分析
選項。關鍵字是:

eol=c - 指定一個行尾註解字元
(只有一個)
skip=n - 指定在檔案開頭要掠過的
行數。
delims=xxx - 指定分隔符號的集合。 這會取代
預設的空白與定位字元的分隔符號集合。
tokens=x,y,m-n - 指定每一行的哪些文字串應該被
傳到 for 的內部以用來進行每一個重複操作。
這會導致額外的變數名稱被配置。
m-n 格式代表一個範圍,
指定了第 m 個到第 n 個字串項。
如果在 tokens= 字串的最後一個字元是
星號,則會配置一個額外的變數
來接收最後一個字串項被分析後
的其他文字。
usebackq - 指定新語義開始作用。
其中反括號的字串會被當作命令來執行,
而單引號字串是純文字字串。
此外還允許使用雙引號來
引用在 filenameset 內
的檔名。

以下是一個範例:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

這會分析 myfile.txt 檔案中的每一行,它不會去管以分號開頭的行數
,直接將第 2 個及第 3 個語法從每一行傳到 for 主體,而其語法是
用逗號和/或空格分開的。請注意,for 主體陳述式參照 %i 以取得第
二個語法,參照 %j 以取得第三個語法,使用 %k 取得第三個語法之
後的剩餘字串。因為檔案名稱含有空格,您必須用雙引號來括住檔案名
稱。要這樣使用雙引號,您必須使用 usebackq 參數。否則雙引號會被
解譯成用來定義一般文字。

使用 %i 明白地在 for 陳述式中宣告,並透過 tokens= option 使用
%j 作暗式性的宣告。您可以藉由 tokens= line 來指定最多 26 個語
法,前提是它宣告的變數不能高於字母 'z' 或 'Z'。請記住,FOR 變
數是單一字元的,同時在任一時間內,您不能同時使用超過 52 個 FOR
變數。

您也可以使用 FOR /F 命令在立即字串中分析邏輯,方法是將括弧之間的
filenameset 變成一個引號字串。它會被視為從檔案輸入的單行,並加
以分析。

最後,您可以使用 FOR /F 命令來分析一個命令的輸出。方法是將括弧
內的 filenameset 變成單引號字串。它將被視為一個命令列,這個命令
行將會傳到子 CMD.EXE,而輸出將會被擷取到記憶體中,當成檔案來分
析。所以下列的範例:

FOR /F "delims==" %i IN ('set') DO @echo %i

將列舉目前環境中的環境變數名稱。

此外,已經加強了 FOR 變數參考的取代功能。
您現在可以選用下列的語法:

%~I - 展開 %I 且移除包圍的引號 (")
%~fI - 展開 %I 為一個完全符合的路徑名稱
%~dI - 只展開 %I 為磁碟機代號
%~pI - 只展開 %I 為路徑
%~nI - 只展開 %I 為檔名
%~xI - 只展開 %I 為副檔名
%~sI - 展開的路徑只包含短檔名
%~aI - 展開 %I 為檔案的檔案屬性
%~tI - 展開 %I 為檔案的日期/時間
%~zI - 展開 %I 檔案的長度
%~$PATH:I - 搜尋所有列在 PATH 環境變數內的目錄
且展開 %I 為
第一個找到的完全符合檔名。
如果沒有定義環境變數名稱
或是搜尋找不到檔案,
則這個修飾元會展開為
空字串。

修飾元可以合併使用以獲得綜合的結果:

%~dpI - 只展開 %I 為磁碟機代號與路徑
%~nxI - 只展開 %I 為檔名與副檔名
%~fsI - 只展開 %I 為含短檔名的完全路徑
%~dp$PATH:i - 為 %I 搜尋所有列在 PATH 環境變數內的目錄
且展開第一個找到的項目為磁碟機代號及
路徑。
%~ftzaI - 展開 %I 為像 DIR 一樣的輸出行

在上面的範例中 %I 和 PATH 能用其他的合法值取代。%~ 語法是由合法的
FOR 變數名稱來終止。如果選用像 %I 的大寫名稱可以增加可讀性而且避免
和修飾元的混淆,因為這些並不區分大小寫。


FORMAT
格式化磁片以供 Windows XP 使用。

FORMAT volume [/FS:file-system] [/V:label] [/Q] [/A:size] [/C] [/X]
FORMAT volume [/V:label] [/Q] [/F:size]
FORMAT volume [/V:label] [/Q] [/T:tracks /N:sectors]
FORMAT volume [/V:label] [/Q]
FORMAT volume [/Q]

volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
/FS:filesystem 指定檔案系統的類型
(FAT、FAT32、或 NTFS)。
/V:label 指定磁碟區標籤。
/Q 執行快速格式化。
/C 只限 NTFS: 根據預設值,建立在新磁碟區上的檔案
會被壓縮。
/X 視需要先將磁碟區解下。
所有在磁碟區上開啟的控制碼都不再是正確的。
/A:size 覆寫預設的配置單位大小。建議在一般使用時,最
好使用預設值。
NTFS 支援 512、1024、2048、4096、8192、16K、32K 和 64K。
FAT 支援 512、1024、2048、4096、8192、16K、32K、64K、
(128K、256K 供磁區容量 > 512 位元組使用)。
FAT32 支援 512、1024、2048、4096、8192、16K、32K、64K,
(128K、256K 供磁區容量 > 512 位元組使用)。

請注意 FAT 及 FAT32 檔案系統強制限制
在磁碟區的叢集數目:

FAT: 叢集數目 <= 65526 FAT32: 65526 < 叢集數目 < 4177918 如果格式化發現使用指定的叢集大小無法符合 上面的要求,格式化將會自動停止 執行。 NTFS 壓縮不支援大於 4096 的配置 單位。 /F:size 指定要格式化的軟碟大小 (1.44) /T:tracks 為磁片各面指定磁軌數量。 /N:sectors 指定各條磁軌的磁碟區數量。 FTYPE 顯示或修改用在副檔名關聯的檔案型態 FTYPE [fileType[=[openCommandString]]] fileType 指定要顯示或修改的檔案型態 openCommandString 指定這個型態的檔案應該用來啟動檔案 的開啟命令。 鍵入 FTYPE 而沒有參數時會顯示目前有定義開啟命令字串的檔案型態。 如果指定了一個檔案型態來執行 FTYPE,它會顯示那個檔案型態目前的開 啟命令字串。如果設定開啟命令字串為空字串,則 FTYPE 命令將會刪除 那個檔案型態的開啟命令字串。在開啟命令字串中,%0 或 %1 會被取代 為經由檔案關聯所啟動的檔案名稱。%* 代表所有參數而 %2 代表第一 個參數、%3 代表第二個,以此類推。%~n 代表在含第 n 個後的其餘所 有參數,其中 n 可以從 2 到 9。例如: ASSOC .pl=PerlScript FTYPE PerlScript=perl.exe %1 %* 可以讓您鍵入下列命令來執行 Perl 指令檔: script.pl 1 2 3 如果您不想鍵入副檔名,您可以做下列的指定: set PATHEXT=.pl;%PATHEXT% 而上面的指令檔可以這樣來執行: script 1 2 3 GOTO 將 cmd.exe 導向到批次程式裡標籤指定的位置。 GOTO label label 指定批次程式裡做為標籤名稱的文字字串。 標籤名稱必須單獨一行,並且以冒號開頭。 如果您啟用擴充命令,GOTO 命令的變更如下: GOTO 命令接收到一個目標標籤: EOF,而此標籤會將控制 傳輸到目前批次指令檔的尾端。利用此簡單的方式,可不 必定義標籤便即離開批次指令檔。鍵入 CALL /? 以查看有關 CALL 擴充命令發揮此特性的描述。 GRAFTABL 在圖形模式中啟用 Windows 來顯示擴充字集。 GRAFTABL [xxx] GRAFTABL /STATUS xxx 指定一個字碼頁編號。 /STATUS 顯示目前選取的字碼頁給 GRAFTABL 使用。 HELP 提供 Windows XP 命令的說明資訊。 HELP [command] command - 顯示該命令的說明資訊。 IF 在批次檔中執行條件處理。 IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 表示 Windows XP 應該只有在條件為偽時 才執行命令。 ERRORLEVEL number 當上一個執行的程式傳回的結束碼大於或 等於指定數字時,則條件為真。 string1==string2 當指定的文字字串相符合時,則條件 為真。 EXIST filename 如果指定的檔名存在時,則條件 為真。 command 指定當條件為真時所要執行的命令。 命令之後可以接著 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 命令 IF CMDEXTVERSION 數字命令 IF DEFINED 變數命令 compare-op 可以是: EQU - 等於 NEQ - 不等於 LSS - 小於 LEQ - 小於或等於 GTR - 大於 GEQ - 大於或等於 而如果指定 /I 參數,則執行區分大小寫的字串比對。此 /I 參數也可使用 string1==string2 格式於 IF 命令。這些比對是通用的,因為在比對中,如 果 string1 及 string2 兩者皆由十進位數字所構成,則字串將會轉換為數 字,並執行數字的比對。 CMDEXTVERSION 條件式的運作和 ERRORLEVEL 一樣,除非它和與擴充命令相 關的內部版本編號作比對。第一個版本為 1。若擴充命令大幅度地增強時就 再加 1。當擴充命令停用時,CMDEXTVERSION 條件式永遠不為真。 DEFINED 條件式的運作和 EXISTS 一樣,除非它帶有環境變數名稱,如果環 境變數已定義則傳回 true 值。 %ERRORLEVEL% 將擴充到代表目前 ERRORLEVEL 變數的一個字串,前提是已 經沒有名為 ERRORLEVEL 的環境變數,在這個情況下,您會得到它的值。使 用此值和上面的數字比對運算元,您可以作下列的選擇: goto answer %ERRORLEVEL% :answer0 提示您鍵入 Y 加以確定 :answer1 提示您鍵入N 加以否定 您也可使用上面的數字比對: IF %ERRORLEVEL% LEQ 1 goto okay %CMDCMDLINE% 將擴充到比 CMD.EXE 的任何處理程序更早傳給 CMD.EXE 的 原始命令列,前提是已經沒有名為 CMDCMDLINE 的環境變數,在這個情形下, 您會得到它的值。 %CMDEXTVERSION% 將擴充成一個表示目前 CMDEXTVERSION 值的字串, 表示沒有名為 CMDEXTVERSION 的環境變數。這種情況下您將會得到它的值。 LABEL 建立、變更或刪除磁碟的磁碟區標籤。 LABEL [drive:][label] LABEL [/MP] [volume] [label] drive: 指定磁碟機代號。 label 指定磁碟區標籤。 /MP 指定磁碟區應被視為掛接點 或磁碟區名稱。 volume 指定磁碟機代號 (後接冒號), 掛接點或磁碟區名稱。如果磁碟區名稱已經指定了, /MP 旗幟就沒有必要了。 MD 建立目錄。 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 建立目錄。 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 如果擴充功能停用的話,您必須鍵入前一種命令類型。 MODE 設定系統裝置組態。 序列連接埠: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s] [to=on|off] [xon=on|off] [odsr=on|off] [octs=on|off] [dtr=on|off|hs] [rts=on|off|hs|tg] [idsr=on|off] 裝置狀態: MODE [device] [/STATUS] 重新導向的列印: MODE LPTn[:]=COMm[:] 選擇字碼頁: MODE CON[:] CP SELECT=yyy 字碼頁狀態: MODE CON[:] CP [/STATUS] 顯示模式: MODE CON[:] [COLS=c] [LINES=n] 鍵盤速度: MODE CON[:] [RATE=r DELAY=d] MORE 以一次一頁螢幕的方式來顯示輸出。 MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]] MORE /E [/C] [/P] [/S] [/Tn] [+n] [files] [drive:][path]filename 指定要顯示的檔案。檔案會以一次 一頁螢幕的方式顯示。 command-name 指定一個命令,而它的輸出將會以 一次一頁螢幕的方式顯示。 /E 啟用擴充功能。 /C 在顯示一頁之前先清除螢幕。 /P 展開 FormFeed 字元。 /S 將數個空白行顯示為一行。 /Tn 將定位字元展開為 n 個空白 (預設值為 8) MORE 環境變數中可以有命令 選項 +n 在第 n 行開始顯示第一個檔案。 files 要顯示的檔案清單。在清單中的檔案 用空格分開。 如果您使用了擴充功能,您可以在 -- 其他 -- 提示出現時,使用下列命令: P n 顯示下面 n 行 S n 跳過下面 n 行 F 顯示下一個檔案 Q 結束 = 顯示行號 ? 顯示輔助說明行 顯示下一頁 顯示下一行 MOVE 移動或更改檔案及目錄的名稱。 移動一個或一個以上的檔案: MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination 更改目錄名稱: MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2 [drive:][path]filename1 指定您要移動的檔案的位置與名稱。 destination 指定檔案的新位置。目的位置可以包 含磁碟機代號和冒號、目錄名稱、或 是這些的組合。如果您只移動一個檔 案,您也可以包含檔名。這樣做會在 移動的同時更改檔名。 [drive:][path]dirname1 指定您要更改名稱的目錄。 dirname2 指定目錄的新名稱。 /Y 不要提示您是否要覆蓋一個現存的 目的檔案。 /-Y 提示您是否要覆蓋一個現存的目的 檔案。 參數 /Y 可能會在 COPYCMD 環境變數中預先設定。您可以在命令列中 使用 /-Y 來覆蓋預設值。預設值是除非 MOVE 命令是在批次檔中執行, 否則系統會提示您是否要覆寫現有檔案。 PATH 顯示或設定搜尋執行檔的路徑。 PATH [[drive:]path[;...][;%PATH%] PATH ; 鍵入 PATH ; 即可清除所有搜尋路徑的設定,並將 cmd.exe 重導為只搜尋 目前的目錄。鍵入 PATH 且不指定任何參數,可顯示目前的搜尋路徑。 在設定的新路徑中加上 %PATH%,可以將舊路徑附加到新的設定。 PAUSE 暫停執行批次程式,並且顯示以下訊息: 請按任意鍵繼續 . . . POPD 變更到用 PUSHD 命令儲存的目錄。 POPD 如果您啟用擴充命令,當您使用 POPD 命令將磁碟機從擴充的目錄堆疊 刪除時,POPD 命令會刪除由 PUSHD 所建立的暫時性磁碟機代號。 PRINT 列印文字檔。 PRINT [/D:device] [[drive:][path]filename[...]] /D:device 指定印表機週邊設備。 PROMPT 變更 cmd.exe 命令提示字元。 PROMPT [text] text 指定新的命令提示字元。 提示字元可以由一般字元及下列特定代碼組成: $A & (Ampersand) $B | (直線) $C ( (左括弧) $D 目前的日期 $E 跳出代碼 (ASCII 碼 27) $F ) (右括弧) $G > (大於符號)
$H 後退 (清除前一個字元)
$L < (小於符號) $N 目前的磁碟機 $P 目前的磁碟機及路徑 $Q = (等號) $S (空格) $T 目前的時間 $V Windows XP 版本編號 $_ 換行 $$ $ (貨幣符號) 如果您啟用擴充命令,PROMPT 命令會支援下列其他的格式字元: $+ 零或多個加號 (+) 字元,視 PUSHD 目錄堆疊的深度 而定,每推入一層就多一個字元。 $M 顯示與目前的磁碟機代號或空字串相關聯的遠端名稱 (如果目前的磁碟機不是網路磁碟機的話)。 PUSHD 儲存目前目錄以供 POPD 命令使用,然後切換到指定的目錄。 PUSHD [path | ..] path 指定要切換到的目錄。 如果您啟用擴充命令,PUSHD 命令會接受正常的磁碟機代號和路徑之外的網 路路徑。如果您指定了一個網路路徑,PUSHD 會建立一個代表該特定的網路 資源的暫時性磁碟機代號,然後以剛定義的磁碟機代號,變更目前的磁碟機 和目錄。暫時性磁碟機代號的配置是由 Z: 往下開始定義,方法是使用第一 個發現到未曾使用過的磁碟機代號。 RD 移除 (刪除) 一個目錄。 RMDIR [/S] [/Q] [drive:]path RD [/S] [/Q] [drive:]path /S 除了目錄本身之外,一併移除指定目錄裡的所有目錄和檔案。 用於移除樹狀目錄結構。 /Q 安靜模式,有 /S 時,刪除目錄樹結構不再要求確認 RECOVER 從損壞的磁碟中復原可讀取的資訊。 RECOVER [磁碟機:][路徑]檔案名稱 在使用 RECOVER 命令以前, 先查閱 Windows XP 說明內的連線命令參考。 REM 在批次檔或 CONFIG.SYS 裡加上備註或說明。 REM [comment] REN 更改檔案名稱。 RENAME [drive:][path]filename1 filename2. REN [drive:][path]filename1 filename2. 請注意您不能為目的檔案指定新的磁碟機或路徑。 RENAME 更改檔案名稱。 RENAME [drive:][path]filename1 filename2. REN [drive:][path]filename1 filename2. 請注意您不能為目的檔案指定新的磁碟機或路徑。 REPLACE 取代檔案。 REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W] REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U] [drive1:][path1]filename 指定來源檔案。 [drive2:][path2] 指定要取代的檔案的 目錄。 /A 將新檔案加到目地目錄。不能和 /S 或 /U 參數同時使用。 /P 當取代檔案或新增來源檔案時顯示確 認的提示。 /R 取代唯讀與未受保護的檔 案。 /S 取代在目的目錄中所有子目錄 的檔案。不能和 /A 參數同時 使用。 /W 在開始前等待您放入磁片。 /U 只取代 (更新) 比來源檔案早 的檔案。不能和 /A 參數同時使用。 RMDIR 移除 (刪除) 一個目錄。 RMDIR [/S] [/Q] [drive:]path RD [/S] [/Q] [drive:]path /S 除了目錄本身之外,一併移除指定目錄裡的所有目錄和檔案。 用於移除樹狀目錄結構。 /Q 安靜模式,有 /S 時,刪除目錄樹結構不再要求確認 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 指定在等號右方的字串是一個要被運算的數字運算式。您可以用運 算式進行簡單的運算,而且支援下列的運算子 (依照運算優先順序由高 到低排列): () - 組成一群 ! ~ - - 一元運算符 * / % - 數字運算元 + - - 數字運算元 << >> - 邏輯位移
& - 位元運算 and
^ - 位元運算 exclusive or
| - 位元運算 or
= *= /= %= += -= - 指定
&= ^= |= <<= >>=
, - 運算式分隔字元

如果您使用了任何邏輯或餘數運算子,您必須將運算式兩邊括上引號。
任何在運算式中非數字的字串會被當作環境變數,並且在使用前會先將
這些環境變數轉換為數字。如果您所指定的環境變數名稱尚未在目前環
境中定義,那麼它的值會被設為 0。這可以讓您用環境變數值來做運算
,而不必打入所有的 % 符號來取得它的值。如果 SET /A 是用指令檔
之外的命令列執行,它會顯示運算式最後的數值。指定運算子需要有個
環境變數在等號的左方。0x 字首在數字前方代表十六進位數字、0b 字
首代表二進位數字或 0 字首代表八進位數字,否則數字值都是指十進位
數字。所以 0x12 就和 18、022 等相同。請注意八進位數字可能容易
弄錯: 像 08 和 09 就不是正確的數字,因為 8 和 9 並不是八進位的
正確數字。

/P 參數讓您設定命令列的使用者輸入變數值。在讀取輸入命令列之前,
顯示指定的 promptString。promptString 可以是空白。

環境變數取代功能已經有下列增強:

%PATH:str1=str2%

會將 PATH 環境變數展開,取代每個發現的 "str1" 與 "str2"的擴充結果。
"str2" 可以是空白字串,這會從擴充輸出中刪除全部 "str1"。"str1" 可以
用星號開始,這將會從擴充輸出的開頭開始,對應到從所有第一個發現含有
str1 的項目。

您也可以為擴充功能指定子字串。

%PATH:~10,5%

這將會擴充 PATH 環境變數,然後只使用擴充結果的第 11 個(位移 10)字元
後的 5 個字元如果長度未指定,將會預設為上次使用的變數值。如果數字(位
移或長度)是負數,使用的數字將會是環境變數的長度加上位移或指定長度。

%PATH:~-10%

將抽出 PATH 變數的最後 10 個字元。

%PATH:~0,-2%

將抽出 PATH 變數的最後 2 個字元。

最後,系統加入了延遲環境變數展開的支援。在預設狀態下,命令展開會啟
用這項支援,但是您可以在 CMD.EXE 用 /V 命令列參數來啟用/停用這個功
能。 請參看 CMD /?

延遲環境變數展開功能可用來避開展開功能限制。這項限制是發生在命令列
讀取過程,不是發生在執行過程。下面的範例說明了立即展開變數時會發生
的問題:

set VAR=before
if "%VAR%" == "before" (
set VAR=after;
if "%VAR%" == "after" @echo If you see this, it worked
)

這個例子永遠無法顯示 echo 訊息,因為在兩個 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% - 展開為執行命令處理器前的原始命令列。


SETLOCAL
在批次檔中屬於中文版環境的開頭已變更。在 SETLOCAL 之後所做的環境變更
已經送出,ENDLOCAL 必須送出,才能還原到上次的設定值。在到達批次指令的
結尾時,批次指令對每個未處理完成的 SETLOCAL 指令都會發出 ENDLOCAL
的執行指令

SETLOCAL

如果您啟用命令擴充,SETLOCAL 的變更如下:

SETLOCAL 批次命令現在可接受一個選項引數,這個引數可為:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
啟用或停用命令處理擴充功能。
請用 CMD /? 來查看說明。
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
啟用或停用延遲環境變數擴充功能。
請用 SET /? 來查看說明。
這些修正命令作用會持續到對應 ENDLOCAL 命令為止,而不管
它們的設定是否在 SETLOCAL 命令之前。

SETLOCAL 命令將會設定 ERRORLEVEL 的數值,但必須給予一個
引數。兩個有效引數之中如果給了一個,而另一個未給時,它的
數值將變為零。您可以在批次指令檔中使用此命令以決定是否有
可使用的擴充功能,請使用下列的
語法:

VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 回應無法啟用擴充功能

這在舊版的 CMD.EXE 中可正常運作,因為 SETLOCAL 並不會設定
ERRORLEVEL 值。用了錯誤引數的 VERIFY 命令會將 ERRORLEVEL
值起始為一個非零的值。


SHIFT
變更批次檔中,可置換參數的位置。

SHIFT [/n]

如果您啟用 SHIFT 擴充命令,支援 /n 參數,它告訴 SHIFT 可以從第 n
個引數開始轉移。n 介於 0 和 8 之間。 例如:

SHIFT /2

會將 %3 轉移到 %2,將 %4 轉移到 %3,以此類推。並且不會影響到
%0 及 %1 。


SORT
SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]

[[drive1:][path1]filename1] [/T [drive2:][path2]]

[/O [drive3:][path3]filename3]

/+n 指定每次開始比較的起始字元

數目 n。 /+3 表示每次比較

都從每行的第 3 個字元開始。

少於三個字元的行數會先被核對。

預設情況下會從每行的第一個字

元開始比較。

/L[OCALE] locale 用指定數值覆寫系統預設值。

""C"" 地區設定會產生最快的

核對順序,而且是目前唯一的

其他選擇。排序都不會區分

英文大小寫。

/M[EMORY] kilobytes 指定排序時主記憶體的使用量

記憶體大小,以 KB 為單位。

不可低於160 KB。如果已指定

記憶體大小,不論目前可用記

憶體有多少,排序時將會使用

您所指定的值。如果您不指定

記憶體的話,可以產生最佳效能。

預設狀況下如果符合預設記憶體

大小最大值的話,排序會一次

執行完成 (沒有暫存檔案),

否則排序會分兩次完成(部分排序

完成的資料會儲存在暫存檔案中)。

這樣排序和合併所使用的記憶體

容量相等。預設最大記憶體大小是

90% 的可用主記憶體大小(如果輸入

和出都是使用檔案的話),否則只會

設定 45% 的可用主記憶體大小。

/REC[ORD_MAXIMUM] 字元指出一個記錄中字元的

最大數目 (預設值為 4096,最大值為 65535)。

/R[EVERSE] 反轉排序順序; 也就是,排序由 Z 到 A,然後

由 9 到 0。

[drive1:][path1]filename1 指定要排序的檔案。如果未指定排序檔案,會將

標準輸入排序。指定輸入檔案比將相同的檔案重

新導向為標準輸入還要快。

/T[EMPORARY]

[drive2:][path2] 指定要保留排序的工作存放區的目錄路徑,萬一

資料不適合放在主要記憶體中的話可以使用。預

設值為使用系統暫存目錄。

/O[UTPUT]

[drive3:][path3]filename3 指定排序的輸入要被存放的檔案。如果未指定,

資料會被寫入標準輸出中。指定輸出檔案比將標

準輸出重新導向到相同的檔案還要快。




START
啟動獨立視窗來執行指定的程式或命令。

START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]

"title" 顯示在視窗標題列上的文字
path 起始目錄
B 啟動應用程式但不建立新視窗。含有 ^C 控制碼的應用程式會
被略過,除非應用程式啟用 ^C 程序,否則 ^Break 是唯一可
以中斷應用程式的方法
I 新環境會使用 cmd.exe 的原始環境,而不是目前的環境。
MIN 視窗最小化
MAX 視窗最大化
SEPARATE 用不同的記憶體空間啟動 16 位元視窗程式
SHARED 用共用的記憶體空間啟動 16 位元視窗程式
LOW 在 IDLE 主要類別中啟動應用程式
NORMAL 在 NORMAL 主要類別中啟動應用程式
HIGH 在 HIGH 主要類別中啟動應用程式
REALTIME 在 REALTIME 主要類別中啟動應用程式
ABOVENORMAL 在 ABOVENORMAL 主要類別中啟動應用程式
BELOWNORMAL 在 BELOWNORMAL 主要類別中啟動應用程式
WAIT 啟動應用程式並等待其結束
command/program
如果這是內部 cmd 命令或批次檔的話,命令處理器會用 /K
參數執行 cmd.exe。這表示視窗會保持到命令執行完成。

如果這不是內部 cmd 命令或批次檔的話,它就是一個程式,
它會以視窗程式或主控台 (DOS) 應用程式的執行方式執行。

parameters 這些是傳給 command/program 的參數。


如果您啟用擴充命令,經由命令列或 START 命令的外部命令執行有以下改變:

可以經由打入檔案名稱的命令來利用檔名連結以啟動非執行檔。(例如 WORD.DOC
會執行和 .DOC 副檔名連結的程式)。請參看 ASSOC 及 FTYPE 命令來了解
如何在指令檔案中建立這些檔案連結。

當執行 32 位元的圖形介面應用程式時,CMD.EXE 並不會等應用程式停止才回到
命令提示。但是如果從指令檔中執行時,則不會有這樣的行為。

當執行一個命令列時,其中第一個字串項是字串 "CMD " 且沒有副檔名或路徑指
示,則 "CMD" 會被 COMSPEC 環境變數的值所取代。這會避免由目前目錄中
選擇 CMD.EXE

當執行一個命令列時,其中第一個字串項不包含副檔名時,則 CMD.EXE 使用
PATHEXT 環境變數的值來決定尋找哪個副檔名及用什麼順序來尋找。PATHEXT
變數的預設值為:

.COM;.EXE;.BAT;.CMD

請注意這個語法和 PATH 變數相同,且用分號來隔開不同的項目。

當尋找執行檔時,若是任何副檔名都不符合,則會試著尋找是否有符合的目錄名稱。
如果有的話,START 命令會在那個路徑執行檔案管理員。若是從命令列執行,這就相
當於執行 CD /D 到那個路徑。


SUBST
建立路徑與磁碟機代號之間的關連。

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

drive1: 指定您要指定路徑的虛擬磁碟機。
[drive2:]path 指定您要指定給虛擬磁碟機的實際磁碟
機與路徑。
/D 刪除取代的 (虛擬的) 磁碟機。

鍵入 SUBST 而不加任何參數會顯示目前所有虛擬磁碟機的清單。


TIME
顯示或設定系統時間。

TIME [/T | time]

僅鍵入 TIME 而不加上參數,可以顯示目前設定的時間,並且提示您輸入新的時
間。按 ENTER 鍵即可保持原來時間。

如果您啟用擴充命令,TIME 命令將會支援/T 參數,這個參數
會讓命令只輸出目前的時間,而不提示您輸入新時間。


TITLE
設定命令提示字元的視窗標題。

TITLE [字串]

字串 指定命令題示字元視窗的標題。


TREE
以圖形顯示磁碟機或路徑的資料夾架構。

TREE [drive:][path] [/F] [/A]

/F 顯示各資料夾中檔案的名稱。
/A 使用 ASCII 取代延伸字元。



TYPE
顯示文字檔案的內容。

TYPE [drive:][path]filename


VER
顯示 Windows XP 版本。

VER


VERIFY
告訴 cmd.exe 是否要驗證檔案有沒有正確地寫入磁碟中。

VERIFY [ON | OFF]

僅鍵入 VERIFY 而不加上參數,可以顯示目前的 VERIFY 設定。


VOL
顯示磁碟區標籤和序號 (若有的話)。

VOL [drive:]


XCOPY
複製檔案和樹狀目錄。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]\r\r
[/EXCLUDE:file1[+file2][+file3]...]

source 指定要複製的檔案。
destination 指定位置或者/以及新檔案的名稱。
/A 只複製設定成保存屬性的檔案,不要改變屬性的設定。
/M 只複製設定成保存屬性的檔案,並清除保存屬性。
/D:m-d-y 複製在指定日期當天或之後發生變更的檔案。如果沒有給日期,
只複製那些來源檔案日期比目的檔案日期為新的檔案。
/EXCLUDE:file1[+file2][+file3]...
指定檔案清單字串。每個字串
應該在檔案中的不同行。如果有字串對應到要進行複製的檔案絕
對路徑的任何部分,這個檔案會被排除複製。例如,指定字串
\obj\ 或 .obj 的話,會排除所有在 obj 目錄下副檔名是
.obj 的檔案複製。
/P 在建立每個目的檔案時顯示提示。
/S 複製每個目錄及其包含的子目錄,不複製空目錄。
/E 複製每個目錄及其包含的子目錄,也複製空目錄。/S 與 /E
相同,能夠用來修改 /T。
/V 驗證每個新檔案。
/W 在複製之前提示您按鍵繼續。
/C 如果錯誤發生時也繼續複製。
/I 如果目的不存在且複製一個以上的檔案的話,就假設指定的
目的一定是目錄。
/Q 在複製時不要顯示檔名。
/F 在複製時顯示來源及目的檔案的全部檔名。
/L 顯示要複製的檔案。
/G 允許加密檔案複製到不支援加密的
目的地。
/H 時複製隱藏檔和系統檔。
/R 覆蓋唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄及子目錄。
/T /E 會包括空目錄及子目錄。
/U 只複製已經存在目的位置的檔案。
/K 複製檔案屬性。通常 Xcopy 會重設唯讀的屬性。
/N 用所產生的短檔名來進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案審查設定 (包含 /O)。
/Y 不要提示您確認是否要覆蓋一個已經存在的檔案。
/-Y 示您確認是否要覆蓋一個已經存在的檔案。
/Z 在可重新開始的模式中複製網路檔案。

參數 /Y 可以在 COPYCMD 環境變數中預先設定。但可以在命令列中用 /-Y 參數
來覆蓋原有設定。

留言

這個網誌中的熱門文章

使用VB讀取健保卡基本資料

使用VB讀取自然人評証卡號