CMD:设置缓冲区高度,与窗口高度无关

Nie*_*sol 7 cmd

我最近了解到我可以控制运行程序的CMD窗口的大小mode x,y.然而,我刚刚注意到这设置了缓冲区大小,窗口将调整为匹配或最大屏幕大小.

我想mode 100,50用于窗口大小,但我也想保留一个arger缓冲区 - 至少我希望开发mode 100,9999.

有没有办法做到这一点?

dbe*_*ham 26

我不认为有一个本机批处理命令可以独立控制缓冲区和窗口大小..NET可以控制两者,但我不认为VBScript或JScript可以访问该功能.但是PowerShell可以:-)请参阅如何扩展Windows PowerShell控制台的宽度?

值得庆幸的是,当PowerShell退出时,新设置将保留在CMD窗口中.

窗口大小始终小于或等于缓冲区大小非常重要.为简化起见,我首先使用MODE将窗口和缓冲区设置为所需的窗口大小,然后使用powershell设置缓冲区大小.

这是一个简单的conSize.bat混合批处理/ powershell脚本,它将大小作为参数:

@echo off
:conSize  winWidth  winHeight  bufWidth  bufHeight
mode con: cols=%1 lines=%2
powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.width=%3;$B.height=%4;$W.buffersize=$B;}"
Run Code Online (Sandbox Code Playgroud)

要获得所需的尺寸,您只需使用即可

call conSize 100 50 100 9999
Run Code Online (Sandbox Code Playgroud)

  • 从 Vista 开始,它是所有版本的标准配置。它不是 XP 的标准配置,但可以下载。 (2认同)