使用命令增加命令提示符的缓冲区大小

使用命令增加命令提示符的缓冲区大小

我可以像这样更改命令提示符窗口的大小:

'mode con:cols=920 lines=40'

但是我怎样才能保持窗口大小不变但增加缓冲区大小(如果你明白我的意思,就把滚动条弄小一点)从命令行?

我运行的是 Windows 7,但我想要一个适用于所有 Windows 版本的命令。这是一个简单的操作,所以我认为没问题。

答案1

mode命令不会(直接)改变窗口的大小,而是改变缓冲区的大小。如果您将数字设置为大于窗口大小,它将根据需要创建滚动条。将其设置为小于窗口的数字将删除滚动条,窗口将缩小。

StackOverflow 问题如果您有兴趣,它可以提供更多通过注册表或编程进行更细粒度控制的解决方案。

答案2

MODE CON:列出了缓冲区大小,但没有列出窗口大小。

MODE CON: cols=N1 lines=N2将窗口和缓冲区设置为相同的尺寸。

您想增加缓冲区大小而不改变窗口大小。

StackOverflow 回答CMD:独立于窗口高度设置缓冲区高度展示如何通过 PowerShell 独立设置缓冲区和窗口大小。

稍加修改就会设置缓冲区大小而不改变窗口大小:

@echo off
:conBufferSize  bufWidth  bufHeight
powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.width=%1;$B.height=%2;$W.buffersize=$B;}"

请注意,缓冲区大小必须大于当前窗口大小。


更新

下面是一个修改后的版本,它检查当前窗口的宽度和高度,如果提供的缓冲区尺寸太小,则将缓冲区尺寸设置为窗口尺寸。

@echo off
:conBufferSize  bufWidth  bufHeight
powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$S=$W.windowsize;$B.width=if (%1 -gt $S.width) {%1} else {$S.width};$B.height=if (%2 -gt $S.height) {%2} else {$S.height};$W.buffersize=$B;}"

相关内容