從 Windows Server 2016 開始,控制台主機(支援所有字元模式應用程式的基礎程序代碼,包括 Windows 命令提示字元、Windows PowerShell 提示字元等)已透過數種方式更新,以新增各種新功能。
控制新功能
預設會啟用新功能,但您可以透過 [屬性] 介面(主要在 [選項] 索引標籤)來啟用或停用每個新功能,或使用這些登錄機碼來還原至先前的控制台主機(所有機碼均為 HKEY_CURRENT_USER\Console 下的 DWORD 值):
| 登錄鍵 | Description |
|---|---|
| ForceV2 | 1 會啟用所有新的控制台功能;0 會停用所有新功能。 注意:此值不會儲存在快捷方式中,而只會儲存在此登錄機碼中。 |
| LineSelection | 1 啟用行選取;0 僅使用區塊模式 |
| FilterOnPaste | 1 啟用新的貼上行為 |
| LineWrap | 當您調整主控台視窗大小時,1 會換行文字 |
| CtrlKeyShortcutsDisabled | 0 啟用新的按鍵快捷方式;1 會停用它們 |
| ExtendedEdit 金鑰 | 1 啟用一整組的鍵盤選取鍵;0 停用一整組的鍵盤選取鍵 |
| TrimLeadingZeros | 在透過雙擊選取段落中,選擇 1 會去除前置零;選擇 0 會保留前置零。 |
| WindowsAlpha | 設定介於 30% 與 100%之間的不透明度值。 請使用 0x4C 到 0xFF 或 76 到 255 來指定值。 |
| WordDelimiters | 使用 CTRL+SHIFT+ARROW 一次選取整字時,定義用來跳到的字元(預設值為空格符)。 將此REG_SZ值設定為包含您想要視為分隔符的所有字元。 注意:此值不會儲存在快捷方式中,而只會儲存在此登錄機碼中。 |
這些設定會根據每個視窗標題儲存在 HKCU\Console 下的登錄中。 由快捷方式開啟的主控台視窗,會將這些設定儲存在快捷方式中;如果快捷方式複製到另一部計算機,設定會將它移至新計算機。 快捷方式中的設定會覆寫所有其他設定,包括全域設定和預設值。 不過,如果您使用 [選項] 索引標籤中的 [使用舊版主控台] 還原為原始控制台,則此設定是全域的,之後會保留所有視窗,包括重新啟動計算機之後。
您可以通過適當配置登錄,使用 Unattend 檔案或 Windows PowerShell 預先設定或使用腳本配置這些設定。
16 位 NTVDM 應用程式始終回復到舊版的控制台主機。
Note
如果您遇到新控制台設定的問題,且無法使用此處所列的任何特定選項加以解決,您可以將 ForceV2 設定為 0 或選項中的使用舊版控制台控件來還原為原始控制台。
控制台行為
您現在可以使用滑鼠抓取邊緣,並拖曳它,來調整主控台視窗的大小。 只有在手動設定視窗維度時(透過 屬性 中的 版面配置 索引標籤)或當緩衝區中最長的文字行比目前的視窗大小還要寬時,才會顯示滾動條。
新的主控台視窗現在支援自動換行。 不過,如果您使用主控台 API 來變更緩衝區中的文字,主控台會保留原本插入的文字。
控制台視窗現在可以是半透明(最低透明度為 30%)。 您可以從 [屬性] 選單或使用下列鍵盤命令來調整透明度:
| 要達成此目的: | 使用此按鍵組合: |
|---|---|
| 提高透明度 | CTRL+SHIFT+Plus (+) 或 CTRL+SHIFT+滑鼠向上捲動 |
| 降低透明度 | CTRL+SHIFT+減號 (-) 或 CTRL+SHIFT+滑鼠向下捲動 |
| 切換全螢幕模式 | ALT+ENTER |
Selection
有許多新選項可用來選取文字和行,以及標記文字和使用緩衝區歷程記錄。 主控台會嘗試避免與可能使用相同的金鑰的應用程式發生衝突。
給開發人員
如果發生衝突,您通常可以使用 SetConsoleMode() API 來控制應用程式使用線路輸入、處理輸入和回應輸入模式的行為。 如果您在已處理的輸入模式中執行,下列快捷方式會套用,但在其他模式中,您的應用程式必須處理它們。 此處未列出的任何按鍵組合會像先前版本的控制台一樣運作。 您也可以嘗試解決 [ 選項 ] 索引標籤上各種設定的衝突。如果所有其他作業都失敗,您一律可以還原為原始控制台。
您現在可以在 QuickEdit 模式之外使用點選和拖曳選取範圍,而且此選取範圍可以選取跨行文字,如同記事本一樣,而不是僅限於矩形區塊。 複製作業不再需要您移除換行符。 除了點選和拖曳選取範圍之外,還有這些按鍵組合可供使用:
文字選取
| 要達成此目的: | 使用此按鍵組合: |
|---|---|
| 將游標移至左一個字元,並擴充選取範圍 | SHIFT+左箭頭 |
| 將游標移至右邊一個字元,並擴充選取範圍 | SHIFT+向右鍵 |
| 從插入點逐行選取文字 | SHIFT+向上鍵 |
| 將文字選取範圍從插入點向下延伸一行 | SHIFT+向下箭頭鍵 |
| 如果游標位於目前正在編輯的行中,請使用此命令一次,將選取範圍延伸至輸入行的最後一個字元。 第二次使用它,將選取範圍延伸至右邊界。 | SHIFT+END |
| 如果游標 不在 目前正在編輯的行中,請使用此命令從插入點到右邊界選取所有文字。 | SHIFT+END |
| 如果游標在目前正在編輯的行中,請使用此命令一次,將選取範圍延伸至命令提示字元之後的字元。 第二次使用它,將選取範圍延伸至右邊界。 | SHIFT+HOME |
| 如果游標 不在 目前正在編輯的行中,請使用此命令將選取範圍延伸至左邊界。 | SHIFT+HOME |
| 將選取範圍向下延伸一個畫面 | SHIFT+下頁鍵 |
| 將選取範圍向上延伸一個畫面 | SHIFT+上頁鍵 |
| 將選取範圍延伸至右邊的一個字。 (您可以使用 WordDelimiters 登錄機碼來定義單字的分隔符號。 | CTRL+SHIFT+向右方向鍵 |
| 將選取範圍向左延伸一個單字 | CTRL+SHIFT+HOME |
| 將選取範圍延伸至螢幕緩衝區的開頭 | CTRL+SHIFT+END |
| 如果游標位於目前行且該行不是空的,則從提示字元之後選取所有文字。 | CTRL+A |
| 如果游標 不在 目前行中,請選取整個緩衝區 | CTRL+A |
編輯文字
您可以使用鍵盤命令在控制台中複製並貼上文字。 CTRL+C 現在具備兩種功能。 如果在您使用時未選取任何文字,它會如往常一樣傳送 BREAK 命令。 如果文字被選取,第一次使用會複製文字並清除選取範圍;第二次使用會傳送BREAK。 以下是其他編輯命令:
| 要達成此目的: | 使用此按鍵組合: |
|---|---|
| 將文字貼到命令行 | CTRL+V |
| 將選取的文字複製到剪貼簿 | CTRL+INS |
| 將選取的文字複製到剪貼簿;send BREAK | CTRL+C |
| 將文字貼到命令行 | SHIFT+INS |
標記模式
若要隨時進入標記模式,請以滑鼠右鍵按下主控台標題列中的任意位置,指向 [ 編輯],然後從開啟的功能表中選取 [ 標記 ]。 您也可以輸入 CTRL+M。 在標記模式中,使用 ALT 鍵來識別換行段落選取範圍的起始位置。 如果停用 啟用換行選取,標記模式會逐區塊選取文字。在標記模式中,CTRL+SHIFT+ARROW 會依字元選取,而不是像正常模式那樣按文字選取。 除了 [編輯文字 ] 區段中的選取鍵之外,這些組合也可在標記模式中使用:
| 要達成此目的: | 使用此按鍵組合: |
|---|---|
| 輸入標記模式以在視窗中移動游標 | CTRL+M |
| 在標記模式中開始換行選取範圍,搭配其他按鍵組合使用 | ALT |
| 在指定的方向移動游標 | 箭頭鍵 |
| 依指定方向將游標移動一頁 | PAGE 鍵 |
| 將游標移至緩衝區的開頭 | CTRL+HOME |
| 將游標移至緩衝區結尾 | CTRL+END |
瀏覽歷史
| 要達成此目的: | 使用此按鍵組合: |
|---|---|
| 在輸出歷程記錄中向上移動一行 | CTRL+上箭頭 |
| 在輸出歷程記錄中向下移動一行 | CTRL+向下鍵 |
| 將檢視區移至緩衝區頂端(如果命令列空白),或刪除游標左邊的所有字元(如果命令行不是空的) | CTRL+HOME |
| 將檢視區移至命令列(如果命令列是空的),或刪除游標右邊的所有字元(如果命令行不是空的) | CTRL+END |
其他鍵盤命令
| 要達成此目的: | 使用此按鍵組合: |
|---|---|
| 開啟 [尋找] 對話框 | CTRL+F |
| 關閉主控台視窗 | ALT+F4 |