1

Я могу изменить размер окна командной строки следующим образом:

'mode con:cols=920 lines=40'

Но как я могу сохранить окно того же размера, но увеличить размер буфера (сделать полосы прокрутки меньше, если вы следуете за мной) из командной строки?

Я использую Windows 7, но мне нужна команда, которая работает во всех версиях Windows. Это простая операция, поэтому я думаю, что мы в порядке.

2 ответа2

1

Команда mode (напрямую) не изменяет размер окна, она изменяет размер буфера. Если вы установите числа, превышающие размер окна, и при необходимости будут созданы полосы прокрутки. Установка его на номера меньше, чем окно, удалит полосы прокрутки, и окно будет уменьшаться.

Существует вопрос StackOverflow, который дает еще несколько решений для более детального управления через реестр или программирование, если вам интересно.

1

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;}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .