CMD cmd 命令詳解


啓動 Windows 命令交互解釋器實例。

另請參閱: color     elevate     PowerShell     runAs     setlocal

基本用法     詳細用法

cmd /?
			

基本語法

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

 

參數 EN 解釋 中文翻譯 備注
/A Causes the output of internal commands to a pipe or file to be ANSI 把到管道 (或文件) 的內部命令,輸齣為 ANSI
/C Carries out the command specified by string and then terminates 執行由字符串指定的命令,然後終止
/D Disable execution of AutoRun commands from registry 禁止從注冊錶執行 AutoRun 命令
/E:OFF Disable command extensions 禁用命令擴展
/E:ON Enable command extensions 啓用命令擴展
/F:OFF Disable file and directory name completion characters 禁用文件和目錄名稱的字符補全
/F:ON Enable file and directory name completion characters 啓用文件和目錄名稱的字符補全
/K Carries out the command specified by string but remains 執行由字符串指定的命令,但保留
/Q Turns echo off 關閉迴顯
/S Modifies the treatment of string after /C or /K 修改 /C (或 /K) 之後的字符串處理
/T:fg Sets the foreground/background colors (see COLOR /? for more info) 設置前颱/背景顔色 (見 COLOR /? 瞭解更多信息)
/U Causes the output of internal commands to a pipe or file to be Unicode 把管道 (或文件) 的內部命令, 輸齣為 Unicode
/V:OFF Disable delayed environment expansion. 禁用延遲的環境擴展。
/V:ON

Enable delayed environment variable expansion using ! as the delimiter.

For example, /V:ON would allow !var! to expand the variable var at execution time.

The var syntax expands variables at input time, which is quite a different thing when inside of a FOR loop.

使用 ! 作為分隔符,啓用延遲的環境變量擴展。

例如,/V:ON 允許 !var! 在執行時擴展變量 var。

var 語法在輸入時擴展變量, 這在 FOR 循環中是完全不同的事情。

 

語法規則


注意:

可接受通過命令分隔符 && 分隔多個命令,若字符串被引號包圍。

此外,由於兼容性原因,/X 等同 /E:ON,/Y 等同 /E:OFF,/R 等同 /C。 任何其他開關會被忽略。

 

若 /C (或 /K) 被指定,則會把開關後的命令行剩餘部分作為命令行進行處理,其中,會使用以下邏輯處理雙引號字符:

1. 若滿足以下所有條件,則會保留命令行引號字符:

- 沒有 /S 開關

- 正好 2 引號字符

- 在 2 引號字符之間沒有特殊字符 &<>()@^|

- 在 2 引號字符之間有一個或多個空格字符

- 在 2 引號字符之間的字符串是可執行文件的名稱

2. 否則,舊行為是看首字符是否為引號字符, 若是,剝離前導字符並移除命令行最後引號字符, 保留最後引號字符後的所有文本。

 

AutoRun 命令


若 /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 所有援引的擴展, 通過使用 REGEDIT.EXE 在注冊錶中把以下一個或兩個 REG_DWORD 值:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

和/或

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

設為 0x1 或 0x0。 用戶特定設置優先於機器設置。 命令行開關優先於注冊錶設置。

在批處理文件中,SETLOCAL ENABLEEXTENSIONS 或 DISABLEEXTENSIONS 自變量優先於 /E:ON 或/E:OFF 開關。 見 SETLOCAL /? 瞭解細節。

命令擴展涉及對以下命令的更改和/或添加:

DEL 或 ERASE

COLOR CD 或 CHDIR

MD 或 MKDIR

PROMPT

PUSHD

POPD

SET

SETLOCAL ENDLOCAL

IF

FOR

CALL

SHIFT

GOTO

START (還包括對外部命令援引的更改)

ASSOC

FTYPE

要獲取特定細節,請鍵入 commandname /? 查看。

 

延遲環境變量擴展


默認情況下,延遲的環境變量擴展不被啓用。

采用 /V:ON 或 /V:OFF 開關能啓用或禁用 CMD.EXE 特定援引的延遲環境變量擴展。

可在機器上和/或用戶登錄會話中啓用或禁用 CMD.EXE 所有援引的延遲擴展, 通過使用 REGEDIT.EXE 在注冊錶中把以下一個或兩個 REG_DWORD 值:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

和/或

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

設為 0x1 或 0x0。 用戶特定設置優先於機器設置。 命令行開關優先於注冊錶設置。

在批處理文件中,SETLOCAL ENABLEDELAYEDEXPANSION 或 DISABLEDELAYEDEXPANSION 自變量優先於 /V:ON 或 /V:OFF 開關。 見 SETLOCAL /? 瞭解細節。

若延遲的環境變量擴展被啓用, 則驚嘆號字符在執行時間可用於代入環境變量的值。

 

字符補全


采用 /F:ON 或 /F:OFF 開關能啓用或禁用 CMD.EXE 特定援引的文件名補全。

可在機器上和/或用戶登錄會話中啓用或禁用 CMD.EXE 所有援引的補全, 通過使用 REGEDIT.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) 空格值 (因為它不是有效控製字符)。

當鍵入 2 控製字符之一時, 補全會被援引。 補全函數將獲取光標左側的路徑字符串 (若獲取字符為空,則追加通配符), 並構建匹配路徑列錶。

接著顯示第一匹配路徑。 若沒有匹配的路徑,則會發齣嘟嘟聲並離開顯示。 此後,重復按下相同控製字符將循環遍曆匹配路徑列錶。 按住 Shift 鍵加控製字符將嚮後遍曆列錶。

若以任何方式編輯行並再次按下控製字符,保存的匹配路徑列錶會被丟棄,並生成一個新的。 若在文件名和目錄名補全之間切換,會同樣發生。

2 控製字符之間的唯一區彆是文件補全字符匹配文件和目錄名兩者,而目錄補全字符隻匹配目錄名。 若文件補全被用於任何內置目錄命令 (CD MD 或 RD),則假定為目錄補全。

補全代碼通過在匹配路徑周圍放置引號,以正確處理包含空格或其他特殊字符的文件名。 還有,若備份,則會從行中援引補全,在援引補全點光標右邊的文本會被丟棄。

需要引號的特殊字符:

空格

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

基本用法

功能 命令 解釋 備注
UAC Start-Process CMD -Verb runAs 在 PowerShell 以管理員權限啓動 CMD 不用輸入管理員口令
幫助 cmd /? 展示幫助信息

以下為 UAC.bat 文件內容,雙擊能以管理員身份運行 wmic 獲取 CPU 溫度。

@ echo off
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",0)(window.close)&goto :eof
:st
wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CriticalTripPoint, CurrentTemperature
			

 

版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。