我有一个应用程序需要精确的终端窗口大小。在 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
答案3
显然,您正在 Windows Terminal 中启动脚本,它无法像旧版 conhost 控制台那样调整大小。
但您仍然可以在 conhost(而不是 Terminal)中启动脚本,并使用 Terminal 作为交互式控制台。
为此,请进入终端并打开设置。在启动部分下,第二个选项允许您修改独立脚本的启动类型。
将其改回 conhost 应该可以解决您的问题。