我最近了解到,可以使用mode x,y
控制运行程序的CMD窗口的大小。但是,我最近注意到,这会设置缓冲区大小,并且窗口将进行调整以匹配或最大化屏幕大小。
我想将mode 100,50
用于窗口大小,但我也想保留一个Arger缓冲区-至少对于开发来说,我需要mode 100,9999
。
有什么办法吗?
最佳答案
我认为没有本地批处理命令可以独立控制缓冲区和窗口大小。 .NET可以控制这两个功能,但是我不认为VBScript或JScript可以访问该功能。但是powershell可以:-)参见How Can I Expand the Width of the Windows PowerShell Console?
幸运的是,当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;}"
要获得所需的尺寸,您只需使用
call conSize 100 50 100 9999
关于CMD:设置缓冲区高度与窗口高度无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13311924/