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

标签 cmd

我最近了解到,可以使用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/

相关文章:

python - imdbpy2sql.py 卡在 FLUSHING MoviesCache 上

java - 如何以编程方式定义虚拟 IP?

c - 如何使用批处理脚本在Windows上查找软件图标

windows - JScript:如何运行外部命令并获取输出?

batch-file - 打开带有隐藏cmd.exe的应用程序

windows - 从批处理文件中重定向输出

javascript - 使用 ActiveX 获取 Windows CMD 输出

date - cmd dir/b/s 加上日期

c# - 在 IIS7 中以编程方式为虚拟目录启用 BITS 上传

windows - 批处理 - 启动函数的 IF ELSE 条件不管怎样都会执行