共用方式為


cmd

啟動命令解釋器的新實體,cmd.exe。 如果沒有參數使用, cmd 則會顯示作系統的版本和著作權資訊。

備註

鼓勵尋求更進階功能的使用者探索 PowerShell ,以增強腳本和自動化功能。

語法

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

參數

參數 說明
/c 執行 所 <string> 指定的命令,然後結束命令處理器。
/k 執行 所 <string> 指定的命令,並讓命令處理器保持執行。
/s 搭配 /c/k使用 時,會觸發特殊的非剖析規則,以在 周圍"去除第一個和最後一個引號 (<string>),但讓命令的其餘部分保持不變。
/q 關閉回應。
/d 停用自動執行命令的執行。
/一個 將命令輸出格式化為美國國家標準研究所(ANSI)。
/u 將命令輸出格式化為 Unicode。
/t:{<b><f> | <f>} 設定背景 (b) 和前景 (f) 色彩。
/e:on 啟用命令延伸模組。
/e:off 停用命令延伸模組。
/f:on 啟用檔案和目錄名稱完成。
/f:off 停用檔案和目錄名稱完成。
/v:on 啟用延遲的環境變數擴充。
/v:off 停用延遲的環境變數擴充。
<string> 指定您要執行的命令。
? 在命令提示字元顯示說明。

下表列出您可以使用的有效十六進位數字作為 和 <b>的值<f>

價值觀 顏色
0 黑色
1 藍色
2 綠色
3
4 紅色
5 紫色
6 黃色
7 白色
8 灰色
9 淺藍色
淺綠色
b 淺青色
c
d 淺紫色
e 淺黃色
f 亮白色

備註

  • 若要將命令輸出重新導向至另一個命令的輸入,請使用管道 (|) 運算符。 例如:

    <command1> | <command2>
    
  • 只有在上一個命令失敗時,雙管道 (||) 運算子才會用來執行下一個命令。 在指定的案例中, command2 只有在失敗時 command1 才會執行。 例如:

    <command1> || <command2>
    
  • 若要將命令輸出重新導向至檔案,請使用大於角括號 > 字元。 例如:

    <command1> > <file1.txt>
    
  • 若要將多個命令分組或巢狀在一起,請使用 &。 例如:

    <command1> & <command2>
    
  • 若要針對 <string>使用多個命令,請以命令分隔符分隔 &&它們。 例如:

    <command1> && <command2> && <command3>
    

    備註

    當您使用 &&時,只有在上述命令成功完成時,下列 && 命令才會執行。 Cmd 會執行第一個命令,只有在上一個命令成功時,才會繼續進行下一個命令。 否則,如果先前的命令失敗,則不會執行後續命令。

  • &字元、管道 |和括號 ( ) 是特殊字元,當您將逸出字元或引號當做自變數傳遞時,這些字元前面必須加上逸出字元 ^ 或引號。

  • 如果命令成功完成作業,它會傳回零 (0) 或沒有結束代碼的結束代碼。

  • 如果您提供的目錄路徑、檔案或任何資訊包含空白,則必須在文字周圍使用雙引號 (" "),例如 "Computer Name"。 例如:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • 您必須在下列特殊字元周圍使用引號: & <> [ ] |{ } ^ = ; ! ' + , ' ~ [空格符]。

  • 如果您指定 /c 或 ,則/k只有在符合下列所有條件時,才會保留其餘的 cmd<string>引號:

    • 您也不會使用 /s
    • 您只使用一組引號。
    • 您不會在引號內使用任何特殊字元,例如: & <> ( ) @ ^ |。
    • 您在引號內使用一或多個空格符。
    • 引號 <string> 內的 是可執行檔的名稱。

    如果不符合先前的條件, <string> 則會檢查第一個字元來確認其是否為左引號來處理。 如果第一個字元是左引號,則會與右引號一起移除。 會保留結尾引號後面的任何文字。

  • 如果您未指定 /dcmd 請尋找下列登錄子機碼:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    如果有一個或兩個登錄子機碼存在,則會在所有其他變數之前執行它們。

  • 您可以使用 停用特定進程的 /e:off命令延伸模組。 您可以藉由設定下列cmd值,為電腦或使用者工作階段上的所有命令列選項啟用或停用擴充功能:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    使用 Regedit.exe,將 登錄中的REG_DWORD 值設定為 0×10×0 (已停用)。 使用者指定的設定優先於計算機設定,而命令行選項的優先順序高於登錄設定。

    謹慎

    不正確的編輯登錄可能會對系統造成嚴重損害。 變更登錄之前,您應該先備份電腦所有的重要資料。

  • 當您啟用命令擴充功能時,下列命令會受到影響:

    • assoc
    • call
    • chdircd
    • color
    • delerase
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdirmd
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (也包括外部命令程序的變更)
  • 如果您啟用延遲的環境變數擴充,您可以使用驚嘆號字元 (!) 來取代運行時間環境變數的值。

  • 預設不會啟用檔案和目錄名稱完成。 您可以使用 開啟或停用命令cmd特定行程的/f:{on | off}檔案名完成。

  • 您可以藉由設定下列cmd值,來啟用或停用電腦上命令的所有行程或使用者登入工作階段的檔案和目錄名稱完成:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    若要設定 REG_DWORD 值,請執行 Regedit.exe,並針對特定函式使用控制字元的十六進位值(例如 ,0×9 為 TAB, 而 0×08 為 BACKSPACE)。 針對空格符使用 [0×20] 值,因為它不是有效的控制字元。 使用者指定的設定優先於計算機設定,而命令行選項的優先順序高於登錄設定。

    謹慎

    不正確的編輯登錄可能會對系統造成嚴重損害。 變更登錄之前,您應該先備份電腦所有的重要資料。

  • 如果您使用 啟用檔案和目錄名稱完成 /f:on,請使用 CTRL+D 進行目錄名稱完成,並使用 CTRL+F 完成檔名。 CTRL+DCTRL+F 按鍵組合的唯一差異在於 CTRL+D 只符合目錄名稱,而 CTRL+F 同時符合檔案和目錄名稱。 如果您在內建目錄命令 cdmdrd上使用檔案和目錄名稱完成,則會假設目錄完成。

  • CTRL+DCTRL+F 會處理檔案和目錄名稱完成。 如果不存在通配符,這些按鍵組合函式會將通配符附加至 <string> ,建置符合的路徑清單,然後顯示第一個相符路徑。 如果沒有任何路徑相符,檔案和目錄名稱完成函式會發出嗶聲,而且不會變更顯示。

    • 若要逐一流覽相符路徑清單,請重複按 CTRL+DCTRL+F
    • 若要向後移動清單,請同時按下 SHIFT 鍵和 CTRL+DCTRL+F
    • 若要捨棄相符路徑的已儲存清單併產生新的清單,請編輯 <string> 並按 CTRL+DCTRL+F
    • 如果您在 CTRL+DCTRL+F 之間切換,則會捨棄已儲存的相符路徑清單,併產生新的清單。
  • 如果您將引號放在比對路徑周圍,檔案和目錄名稱完成會正確處理包含空格元或特殊字元的檔名。

  • 如果您從 內 <string>處理檔案和目錄名稱完成,在處理完成的點 <string> ,則會捨棄游標右邊 路徑 的任何部分。

使用環境變數

cmd命令殼層環境是由決定命令殼層和作系統行為的變數所定義。 您可以使用兩種類型的環境變數、系統和本機,定義命令殼層環境或整個作系統環境的行為。 系統環境變數會定義全域作系統環境的行為。 本機環境變數會定義目前 實例 cmd之環境的行為。

只有具有系統管理許可權的使用者才能變更系統變數。 這些變數最常用於登入腳本。 本機環境變數只有在他們建立的使用者登入計算機時才能使用。 HKEY_CURRENT_USER hive 中設定的局部變數僅適用於目前使用者,但定義全域作系統環境的行為。

下列清單描述優先順序遞減的變數類型:

  1. 內建系統變數。
  2. HKEY_LOCAL_MACHINE hive 中找到的系統變數。
  3. HKEY_CURRENT_USER hive 中找到的局部變數。
  4. Autoexec.bat 檔案中設定的所有環境變數和路徑。
  5. 登入腳本中設定的所有環境變數和路徑(如果有的話)。
  6. 腳本或批處理檔中以互動方式使用的變數。

在命令殼層中,每個實例 cmd 都會繼承其父應用程式的環境。 因此,您可以變更新 cmd 環境中的變數,而不會影響父應用程式的環境。

您可以執行下列其中一個命令來檢視環境中的環境變數:

set
Get-ChildItem Env:

設定環境變數

若要檢視變數,請輸入:

set <VariableName>

若要新增變數,請輸入:

set <VariableName>=<value>

若要刪除變數,請輸入:

set <VariableName>=

您可以使用大部分字元作為變數值,包括空格符。 如果您使用特殊字元 <、 >、|、& 或 ^,則必須在它們前面加上逸出字元 ^ 雙引號。 如果您使用雙引號,它們會包含在值中,因為等號後面的一切會視為值。 請考慮下列範例:

若要建立變數值 New&Name,請輸入:

set <VariableName>=New^&Name

若要建立變數值 "New&Name",請輸入:

set <VariableName>="New&Name"

如果您在命令提示字元中輸入 set <VariableName>=New&Name (不含克拉 ^ 或雙引號),可能會顯示下列錯誤訊息:

"'Name' is not recognized as an internal or external command, operable program or batch file."

變數名稱不區分大小寫。 不過, set 請完全如您輸入變數一樣顯示變數。 您可以在變數名稱中結合大寫和小寫字母,讓您的程式代碼更容易閱讀,例如 UserName

備註

  • 個別環境變數大小上限為8,192個字節。
  • 所有環境變數的大小總計上限,包括名稱、值和等號,是進程的65,536個字元。

替代環境變數值

若要取代命令行或文稿中的變數值,請將變數名稱以百分比符弧括住(%VariableName%)。 這允許 cmd 參考變數的值,而不是將它視為常值文字。 執行腳本時, cmd 將變數的實例取代為其值。 例如,在腳本中使用 %USERNAME% 會自動取代實際的用戶名稱。 變數替代不是遞迴的; cmd 只會檢查變數一次。