在Win11上动态更改终端窗口大小

在Win11上动态更改终端窗口大小

我有一个应用程序需要精确的终端窗口大小。在 Win10 上,我使用以下批处理脚本来启动该应用程序:

@echo off
mode 96, 50
py main.py
pause

当我在 Win11 上使用相同的脚本时,它打开了 PowerShell 而不是命令提示符,并且保留了默认的终端窗口大小(120 x 50)。

我想要一个批处理脚本,双击后会以指定的宽度和高度打开终端。我不在乎是否获得 PowerShell 或命令提示符,只要窗口大小正确即可。


我使用 Win11 中的终端做了一些测试,以下是我的发现。

测试 1。在目录中右键单击并选择“在终端中打开”。它会以“Windows PowerShell”的形式打开 Win11 样式的终端窗口。我现在可以手动打开“命令提示符”,它会在终端窗口中创建一个新选项卡。我输入了“模式 20”,窗口中的文本全都乱了,但窗口大小没有改变。

测试 2。在搜索栏中输入“cmd”,然后单击“命令提示符”。再次,它会打开 Win11 样式的终端窗口,但现在是“命令提示符”。与测试 1 中的“模式 20”问题相同。

测试 3。在搜索栏中输入“cmd”,然后以管理员身份运行“命令提示符”。现在我得到了 Win10 风格的终端窗口,“mode”命令似乎产生了预期的效果。

双击 .bat 或 .cmd 文件会在 Win11 风格的终端中运行该脚本,该脚本不会改变其宽度和高度。

答案1

当我在 Win11 上使用相同的脚本时,它打开了 PowerShell 而不是命令提示符,并且保留了默认的终端窗口大小(120 x 50)。

.bat脚本总是由命令提示符 (Cmd.exe) 解释,但您看到的实际窗口是两者都不PowerShell 也不是命令提示符 – 它要么是 Win11 上的 Windows 终端,要么是 Win10 上的 Conhost(又名“Windows 控制台”)。

目前,Windows 终端不支持无法通过控制台应用程序调整大小,既不能通过 Win32 样式的 API,也不能通过 Unix 样式的 VT 代码。(部分原因是它支持选项卡,而他们还没有决定当不同的选项卡要求不同的大小时该怎么做。)

答案2

为了能够更改尺寸,您需要使用 conhost 运行脚本。对于发现 cmd.exe 在 Windows 终端中打开的 Windows 11 用户 [新默认设置],将 Conhost 恢复为默认设置的过程如下:

按 Windows 键在搜索栏中输入 cmd.exe 选择以管理员身份运行 右键单击标题栏选择默认值在终端选项卡中,选择下拉框并将默认终端应用程序更改为 Windows 控制台主机

以管理员身份运行 右键单击标题栏并选择默认值 将默认设置为 Conhost

答案3

显然,您正在 Windows Terminal 中启动脚本,它无法像旧版 conhost 控制台那样调整大小。
但您仍然可以在 conhost(而不是 Terminal)中启动脚本,并使用 Terminal 作为交互式控制台。

为此,请进入终端并打开设置。在启动部分下,第二个选项允许您修改独立脚本的启动类型。
将其改回 conhost 应该可以解决您的问题。

相关内容