我可以像这样更改命令提示符窗口的大小:
'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;}"