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

Mar*_*rko 5 terminal batch-file

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

@echo off
mode 96, 50
py main.py
pause
Run Code Online (Sandbox Code Playgroud)

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

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


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

测试 1.右键单击​​目录并选择“在终端中打开”。它将 Win11 风格的终端窗口打开为“Windows PowerShell”。我现在可以手动打开“命令提示符”,它会在终端窗口中创建一个新选项卡。我输入“mode 20”,窗口中的文本变得一团糟,但窗口大小没有改变。

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

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

双击 .bat 或 .cmd 文件会在 Win11 样式终端中运行脚本,这不会更改其宽度和高度。

小智 5

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

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

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


use*_*686 2

\n

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

\n
\n

.bat脚本始终由命令提示符 (Cmd.exe) 解释,但您看到的实际窗口既不是PowerShell,也不是命令提示符 \xe2\x80\x93,它是 Win11 上的 Windows 终端或 Conhost(也称为“Windows 控制台”) ”)在 Win10 上。

\n

目前,Windows 终端不支持通过控制台应用程序调整大小,无论是通过 Win32 风格的 API 还是通过 Unix 风格的 VT 代码。(部分原因是它支持选项卡,并且他们还没有决定当不同的选项卡要求不同的尺寸时该怎么办。)

\n

  • 这是一个解决方案:在“Windows 终端”中,以 PowerShell 或命令提示符方式运行以下命令 `conhost test.cmd`。这将打开 conhost 窗口,该窗口还将处理我原来帖子中的“test.cmd”脚本,即更改 conhost 窗口大小并运行 Python 程序。还可以用 Python 为原始 Python 程序编写一个包装器,它将调用 conhost 并处理脚本:`os.system('conhost test.cmd')`。我接受你的答案,因为它帮助我找到了解决方案。请考虑将此解决方案添加到您的答案中以供将来参考。 (3认同)