[教學]DOS指令說明

Home Home
引用 | 編輯 aska1218
2005-02-14 15:39
樓主
推文 x1
DOS可以說"食之無味,棄之可惜"
就算到了使用XP這年代
它仍然有其功用
多學學總是有好處的
我將它做了整理
供大家參考
有什麼問題可以大家討論
==============================================================================
如果臨時要用
卻又找不到時
你只要記得
command 後面加上/?
就會出現說明了
==============================================================================
assoc
顯示或修改副檔名的關聯

ASSOC [.ext[=]]

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

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

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


AT [\\computername] [ | /DELETE ]
AT [\\computername] time
[ /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] [
]

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

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

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

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

==============================================================================
call
從批次程式中呼叫另一程式。

CALL filename

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 可被其他有效值取代。%~ 語法是
以正確的引數數字作結尾。%~ 修正程式可能無法使用 %*

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

CACLS filename ]
] ]
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 不可套用到目前的檔案/目錄。

==============================================================================
cd/chdir
顯示目前工作目錄的名稱或是變更目錄。

CHDIR
CHDIR [..]
CD
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 指定字碼頁編號。

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

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


CHKDSK filename]]] ]


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


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

==============================================================================
cls
清除螢幕

CLS

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

CMD
[ 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) 也等於使用了目錄完成功能。

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

要求加上引號的特殊字元有:
<space>
&()[]{}^=;!'+,`~

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

COLOR

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 以 ASCII 字元來顯示不同之處。
/L 顯示不同之處的行號。
/N=number 只比較每個檔案中第一個指定的行號。
/C 比較檔案時忽略 ASCII 字母的大小寫。
/OFF 不要略過有離線屬性設定的檔案。

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

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

COMPACT ] ]

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

不帶參數,COMPACT 顯示目前目錄及其含有所有檔案的壓縮狀態。您可以使用
多個檔名或通配字元。在多個參數彼此間必須有空格。

==============================================================================
convert
將 FAT 磁碟區轉換為 NTFS。

CONVERT volume /FS:NTFS

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

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

COPY source
[+ source [+ ...]] ]

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

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

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

==============================================================================
date
顯示或設定日期。

DATE

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

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

==============================================================================
del/erase
刪除一個或更多檔案。

DEL attributes]] names
ERASE attributes]] names

names 指定一個或更多檔案或目錄清單。
可以使用萬用字元來刪除多個檔案。 如果
指定目錄,這個目錄內的所有檔案
將被刪除。

/P 刪除每個檔案前,先提示確認。
/F 強制刪除唯讀檔案。
/S 由所有子目錄刪除指定的檔案。
/Q 安靜模式,不要問是否確定刪除全域萬用字元
/A 根據屬性選取要刪除的檔案
attributes R 唯讀檔案 S 系統檔案
H 隱藏檔案 A 準備保存的檔案
- 首碼表示不是

如果您啟用擴充命令,DEL 和 ERASE 命令的變更如下:

/S 參數的顯示方式完全相反,它只會顯示已刪除的檔案,不會顯示它找不到的
檔案。

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

DIR attributes]]
sortorder]] timefield]]


指定要顯示的磁碟機、目錄或檔案。

/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:]]

=== ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 ryangod
2009-07-14 18:01
1樓
  
thx 表情

獻花 x0
引用 | 編輯 hobbya
2009-07-24 14:13
2樓
  
謝謝。

獻花 x0
引用 | 編輯 ray1007jp-86
2009-08-05 06:54
3樓
  
哇!真是感謝大大的用心~

雖然不怎麼懂,但一定想辦法大約了解一下!! 表情

獻花 x0
引用 | 編輯 snk1221
2012-10-09 11:57
4樓
  
對岸有人寫成批次檔
~把下面複製到批次檔裡執行~
就會產生一個叫做
命令行幫助信息.HTA
直接打開就有所有指令說明..
-------------------------------------------------------------------------------
@echo off
title 命令提示符-命令行幫助信息生成器 - code zh159@bbs.cn-dos.net 2008-4-26
set Name=命令行幫助信息
echo.
echo   請稍等...
>%Name%.hta echo ^<html lang="zh-tw"^>
>>%Name%.hta echo ^<meta http-equiv="Content-Type" content="text/html; charset=Big-5"^>
>>%Name%.hta echo ^<title^>命令提示符-命令行幫助信息 - code zh159@bbs.cn-dos.net 2008-4-26^</title^>
>>%Name%.hta echo ^<HTA:APPLICATION
>>%Name%.hta echo APPLICATIONNAME="命令提示符-命令行幫助信息"
>>%Name%.hta echo SCROLL="no"
>>%Name%.hta echo INNERBORDER="no"
>>%Name%.hta echo /^>
>>%Name%.hta echo ^<script language="VBScript"^>
>>%Name%.hta echo   window.resizeTo 900, 660
>>%Name%.hta echo   ileft=(window.screen.width-900)/2
>>%Name%.hta echo   itop=(window.screen.height-660)/2-15
>>%Name%.hta echo   window.moveTo ileft,itop
>>%Name%.hta echo ^</script^>
>>%Name%.hta echo ^<style^>
>>%Name%.hta echo a:link {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:visited {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:hover {color: #ffffff; background-color:0000ff;}
>>%Name%.hta echo a:active {color: #ff0000; background-color:ffffff;}
>>%Name%.hta echo em {font:18px Tahoma; color:0000ff;}^</style^>
>>%Name%.hta echo ^</style^>
>>%Name%.hta echo ^<body style="FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#10bfff,endColorStr=#007db2);color:#ffffff;"^>
>>%Name%.hta echo ^<table width="100%%" height="100%%" align="center" border="0" cellspacing="0" cellpadding="1" style="border: solid 1 #ffffff;"^>
>>%Name%.hta echo   ^<tr^>
>>%Name%.hta echo   ^<td width="120" height="100%%"^>
>>%Name%.hta echo   ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo     ^<table align="left"^>^<tr^>^<td^>
>>%Name%.hta echo       命令列表^<br^>

echo.
for /f %%i in ('help^|findstr /i "^[a-z]"') do (
set/a n+=1
call set/p= 共 %%n%% 個命令,正在處理...<nul
set /p=                     <nul
>>%Name%.hta echo.       ^<a href="#%%i"^>%%i^</a^>^<br^>
)
>>%Name%.hta echo     ^<td^>^<tr^>^</table^>
>>%Name%.hta echo   ^</span^>
>>%Name%.hta echo   ^</td^>
>>%Name%.hta echo   ^<td^>
>>%Name%.hta echo   ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo     ^<table align="left" style="font:15px Fixedsys;"^>^<tr^>^<td^>

echo.&echo.
echo   序號     - 命令名稱
for /f %%i in ('help^|findstr /i "^[a-z]"') do (
set/a m+=1
call echo   %%m%%.     - %%i
>>%Name%.hta echo ^</p^>^<a name="#%%i"^>^</a^>^<em^>^<u^>%%i^</u^>^</em^>^<br^>
for /f "delims=" %%f in ('%%i/?') do (
  set "str=%%f"
  setlocal EnableDelayedExpansion
  set str=!str: = !
  set str=!str:^<=^<!
  set str=!str:^>=^>!
  >>%Name%.hta echo.  !str!^<br^>
  endlocal
)
)
>>%Name%.hta echo     ^<td^>^<tr^>^</table^>
>>%Name%.hta echo   ^</span^>
>>%Name%.hta echo   ^</td^>
>>%Name%.hta echo   ^</tr^>
>>%Name%.hta echo ^</table^>
>>%Name%.hta echo ^</body^>
>>%Name%.hta echo ^</html^>

echo.
echo   完成!按任意鍵打開「%Name%.hta」。
pause>nul
start %Name%.hta
exit
生成過程中加了變色處理,速度慢了N多CODE: [Copy to clipboard]
--------------------------------------------------------------------------------
::code zh159@bbs.cn-dos.net 2008-4-26
@echo off
title 命令提示符-命令行幫助信息生成器 - code zh159@bbs.cn-dos.net 2008-4-26
set Name=命令行幫助信息
echo.
echo   請稍等...
>%Name%.hta echo ^<html^>
>>%Name%.hta echo ^<title^>命令提示符-命令行幫助信息 - code zh159@bbs.cn-dos.net 2008-4-26^</title^>
>>%Name%.hta echo ^<HTA:APPLICATION
>>%Name%.hta echo APPLICATIONNAME="命令提示符-命令行幫助信息"
>>%Name%.hta echo SCROLL="no"
>>%Name%.hta echo INNERBORDER="no"
>>%Name%.hta echo /^>
>>%Name%.hta echo ^<script language="VBScript"^>
>>%Name%.hta echo   window.resizeTo 900, 660
>>%Name%.hta echo   ileft=(window.screen.width-900)/2
>>%Name%.hta echo   itop=(window.screen.height-660)/2-15
>>%Name%.hta echo   window.moveTo ileft,itop
>>%Name%.hta echo ^</script^>
>>%Name%.hta echo ^<style^>
>>%Name%.hta echo a:link {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:visited {color: #000000; font:18px Tahoma; text-decoration:none;}
>>%Name%.hta echo a:hover {color: #ffffff; background-color:0000ff;}
>>%Name%.hta echo a:active {color: #ff0000; background-color:ffffff;}
>>%Name%.hta echo em {font:18px Tahoma; color:0000ff;}^</style^>
>>%Name%.hta echo ^</style^>
>>%Name%.hta echo ^<body style="FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#10bfff,endColorStr=#007db2);color:#ffffff;"^>
>>%Name%.hta echo ^<table width="100%%" height="100%%" align="center" border="0" cellspacing="0" cellpadding="1" style="border: solid 1 #ffffff;"^>
>>%Name%.hta echo   ^<tr^>
>>%Name%.hta echo   ^<td width="120" height="100%%"^>
>>%Name%.hta echo   ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo     ^<table align="left"^>^<tr^>^<td^>
>>%Name%.hta echo       命令列表^<br^>

echo.
for /f %%i in ('help^|findstr /i "^[a-z]"') do (
set/a n+=1
call set/p= 共 %%n%% 個命令,正在處理...<nul
set /p=                     <nul
>>%Name%.hta echo.       ^<a href="#%%i"^>%%i^</a^>^<br^>
)
>>%Name%.hta echo     ^<td^>^<tr^>^</table^>
>>%Name%.hta echo   ^</span^>
>>%Name%.hta echo   ^</td^>
>>%Name%.hta echo   ^<td^>
>>%Name%.hta echo   ^<span style="width:100%%;height:100%%; overflow-y: auto;"^>
>>%Name%.hta echo     ^<table align="left" style="font:15px Fixedsys;"^>^<tr^>^<td^>

echo.&echo.
echo   序號     - 命令名稱
for /f %%i in ('help^|findstr /i "^[a-z]"') do (
set/a m+=1
rem call echo   %%m%%.     - %%i
  setlocal EnableDelayedExpansion
set /p=   <nul&set /p=   <nul>"!m!. - %%i"&findstr /a:c .* "!m!. - %%i*" 2>nul&set /p=                     <nul
  endlocal
>>%Name%.hta echo ^</p^>^<a name="#%%i"^>^</a^>^<em^>^<u^>%%i^</u^>^</em^>^<br^>
for /f "delims=" %%f in ('%%i/?') do (
  set "str=%%f"
  setlocal EnableDelayedExpansion
  set str=!str: = !
  set str=!str:^<=^<!
  set str=!str:^>=^>!
  >>%Name%.hta echo.  !str!^<br^>
  endlocal
)
  setlocal EnableDelayedExpansion
set /p=   <nul&findstr /a:a .* "!m!. - %%i*" 2>nul&echo.&del /q "!m!. - %%i" 2>nul
  endlocal
)
>>%Name%.hta echo     ^<td^>^<tr^>^</table^>
>>%Name%.hta echo   ^</span^>
>>%Name%.hta echo   ^</td^>
>>%Name%.hta echo   ^</tr^>
>>%Name%.hta echo ^</table^>
>>%Name%.hta echo ^</body^>
>>%Name%.hta echo ^</html^>

echo.
echo   完成!按任意鍵打開「%Name%.hta」。
pause>nul
start %Name%.hta
exit

獻花 x0