从 Windows Server 2016 开始,控制台主机(支持所有字符模式应用程序的基础代码,包括 Windows 命令提示符、Windows PowerShell 提示符和其他应用程序)已通过多种方式进行了更新,以添加各种新功能。
控制新功能
默认情况下,新功能已启用,但你可以通过“属性”界面(主要在“选项”选项卡上)或使用这些注册表键(所有键都是HKEY_CURRENT_USER\Console下的 DWORD 值)切换新功能的启用状态或还原到以前的控制台主机。
| 注册表项 | DESCRIPTION |
|---|---|
| ForceV2 | 1 启用所有新的控制台功能;0 禁用所有新功能。 注意:此值不存储在快捷方式中,而只存储在此注册表项中。 |
| 线路选择 | 1 启用行选择;0 仅使用块模式 |
| FilterOnPaste | 1 启用新的粘贴行为 |
| LineWrap | 当调整控制台窗口大小时 1 进行文本换行 |
| 已禁用Ctrl键快捷键 | 0 启用新的键快捷方式;1 禁用它们 |
| ExtendedEdit 密钥 | 1 启用完整的键盘选择键集;0 禁用它们 |
| TrimLeadingZeros | 将设置为 1 时,通过双击删除选择内容中的前导零;设置为 0 时保留前导零。 |
| WindowsAlpha | 设置 30% 和 100%之间的不透明度值。 使用0x4C 到 0xFF 或 76 到 255 指定值 |
| WordDelimiters | 定义通过 CTRL + SHIFT + ARROW 一次选择整个单词文本时用于跳过的字符(默认为空格字符)。 将此REG_SZ值设置为包含要视为分隔符的所有字符。 注意:此值不存储在快捷方式中,而只存储在此注册表项中。 |
这些设置按 HKCU\Console 下的注册表中的每个窗口标题存储。 通过快捷方式打开的控制台窗口将这些设置存储在快捷方式中;如果快捷方式复制到另一台计算机,则设置会随该计算机一起移动到新计算机。 快捷方式中的设置将覆盖所有其他设置,包括全局设置和默认值。 但是,如果在“选项”选项卡中使用旧版控制台还原到原始控制台,则此设置是全局的,之后将保留所有窗口,包括重启计算机后。
可以通过在无人参与文件或 Windows PowerShell 中适当地配置注册表来预配置或编写这些设置的脚本。
16 位 NTVDM 应用始终返回到较旧的控制台主机。
注释
如果遇到新控制台设置的问题,并且无法使用此处列出的任何特定选项解决它们,则始终可以通过将 ForceV2 设置为 0 或使用选项中的“使用旧控制台”控件还原到原始控制台。
控制台行为
现在,可以通过用鼠标抓取边缘并拖动它来调整控制台窗口的大小。 仅当手动设置窗口尺寸(使用“属性”中的“布局”选项卡)或缓冲区中最长文本行大于当前窗口大小时,才会显示滚动条。
新的控制台窗口现在支持文字换行。 但是,如果使用控制台 API 更改缓冲区中的文本,控制台将保留最初插入的文本。
控制台窗口现在可以半透明(最低透明度为 30%)。 可以从“属性”菜单或使用以下键盘命令调整透明度:
| 为此,请按以下步骤操作: | 使用以下组合键: |
|---|---|
| 提高透明度 | Ctrl+Shift+Plus (+) 或 Ctrl+Shift+鼠标向上滚动 |
| 降低透明度 | Ctrl+Shift+减号(-)或 Ctrl+Shift+鼠标向下滚动 |
| 切换全屏显示模式 | Alt+ENTER |
选择
有许多用于选择文本和行以及标记文本和使用缓冲区历史记录的新选项。 控制台尝试避免与可能使用相同的密钥的应用程序发生冲突。
面向开发人员
如果发生冲突,通常可以使用 SetConsoleMode() API 控制应用程序使用行输入、已处理的输入和回显输入模式的行为。 如果在处理的输入模式下运行,下面的快捷方式将适用,但在其他模式下,应用程序必须处理它们。 此处未列出的任何键组合都像以前版本的控制台一样正常运行。 还可以尝试解决选项选项卡上各种设置的冲突。如果所有其他方法都失败,可以随时还原到原始控制台。
现在可以在 QuickEdit 模式之外使用单击和拖动选择,此选择可以像记事本中那样跨行选择文本,而不仅仅是矩形块。 复制操作不再需要删除换行符。 除了单击和拖动选择之外,还可使用以下组合键:
文本选择
| 为此,请按以下步骤操作: | 使用以下组合键: |
|---|---|
| 将光标向左移动一个字符,同时扩展选择内容。 | Shift+向左键 |
| 将光标向右移动一个字符,延伸选区 | Shift+向右键 |
| 从插入点逐行选择文本 | Shift+向上键 |
| 将文本选择范围从插入点向下扩展一行 | Shift+向下键 |
| 如果光标位于当前正在编辑的行中,请使用此命令一次将所选内容扩展到输入行中的最后一个字符。 第二次使用此命令可将所选内容扩展到右边距。 | Shift+End |
| 如果光标 不在 当前正在编辑的行中,请使用此命令从插入点到右边距选择所有文本。 | Shift+End |
| 如果光标位于当前正在编辑的行中,请使用此命令一次,将所选内容扩展到命令提示符后的第一个字符。 第二次使用此命令可将所选内容扩展到右边距。 | Shift+Home |
| 如果光标 不在 当前正在编辑的行中,请使用此命令将所选内容扩展到左边距。 | Shift+Home |
| 将所选内容向下扩展一个屏幕 | 按住SHIFT键并按下PAGE DOWN键 |
| 将所选内容向上扩展一个屏幕 | Shift键+向上翻页键 |
| 将所选内容向右扩展一个单词 (可以使用 WordDelimiters 注册表项定义单词的分隔符。) | Ctrl+Shift+右箭头键 |
| 将选择范围向左扩展一个字 | Ctrl+Shift+Home |
| 将所选内容扩展到屏幕缓冲区的开头 | Ctrl+Shift+End |
| 如果光标位于当前行且行不为空,请在提示后选择所有文本 | CTRL + A |
| 如果光标 不在 当前行中,请选择整个缓冲区 | CTRL + A |
编辑文本
可以使用键盘命令在控制台中复制和粘贴文本。 Ctrl+C 现在提供两个函数。 如果使用时未选择任何文本,它将像往常一样发送 BREAK 命令。 如果选择了文本,首次操作会复制文本并清除所选内容;第二次操作会发送"BREAK"。 下面是其他编辑命令:
| 为此,请按以下步骤操作: | 使用以下组合键: |
|---|---|
| 将文本粘贴到命令行中 | Ctrl+V |
| 将所选文本复制到剪贴板 | CTRL + INS |
| 将所选文本复制到剪贴板;发送中断命令 | Ctrl+C |
| 将文本粘贴到命令行中 | SHIFT + INS |
标记模式
若要随时进入标记模式,请右键单击控制台标题栏中的任意位置,指向 “编辑”,然后从打开的菜单中选择 “标记 ”。 还可以键入 Ctrl+M。 在标记模式下,使用 ALT 键来标识自动换行选项的开始。 (如果禁用 “启用换行”选择 ,则标记模式选择块中的文本。在标记模式下,Ctrl+Shift+ARROW 按字符选择,而不是按单词选择,如正常模式。 除了 “编辑文本 ”部分中的选择键外,这些组合在标记模式下可用:
| 为此,请按以下步骤操作: | 使用以下组合键: |
|---|---|
| 输入标记模式以在窗口中移动光标 | Ctrl+M |
| 在标记模式下,与其他组合键结合使用开始自动换行选择 | Alt |
| 按指定方向移动光标 | 箭头键 |
| 向指定方向移动光标一页 | 页面键 |
| 将光标移动到缓冲区的开头 | Ctrl+Home |
| 将光标移到缓冲区末尾 | Ctrl+结束 |
导航历史记录
| 为此,请按以下步骤操作: | 使用以下组合键: |
|---|---|
| 在输出历史记录中向上移动一行 | Ctrl+向上键 |
| 在输出历史记录中向下移动一行 | Ctrl+向下键 |
| 将视区移动到缓冲区顶部(如果命令行为空)或删除光标左侧的所有字符(如果命令行不为空) | Ctrl+Home |
| 将视区移动到命令行(如果命令行为空)或删除光标右侧的所有字符(如果命令行不为空) | Ctrl+结束 |
其他键盘命令
| 为此,请按以下步骤操作: | 使用以下组合键: |
|---|---|
| 打开“查找”对话框 | Ctrl+F |
| 关闭控制台窗口 | Alt + F4 |