2009年8月4日 星期二

CMD 命令 - E - H 字部

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 < 叢集數目 <>

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 - 顯示該命令的說明資訊。




轉載自:http://www.csie.ntu.edu.tw/~r91112/myDownload/WEB/CMD.html

沒有留言:

張貼留言