Как изменить размер экранного буфера в командной строке Windows из пакетного скрипта - PullRequest
50 голосов
/ 14 января 2011

Я знаю, что вы можете щелкнуть правой кнопкой мыши свойства -> макет и изменить его вручную.

Но как бы вы изменили его из пакетного скрипта Windows?

Я знаю, что вы можетеизмените его размер из скрипта, используя что-то вроде этого

MODE CON: COLS=90 LINES=10

Но как вы можете изменить размер буфера?

Скрипт будет работать некоторое время, а иногда и до сбояи выход занимает некоторое время, поэтому мне нужен больший буфер.

Ответы [ 12 ]

0 голосов
/ 01 декабря 2018

Я расширяю комментарий, который я разместил здесь, так как большинство людей не заметят его.

https://lifeboat.com/programs/console.exe - это скомпилированная версия программы Visual Basic, описанная в https://stackoverflow.com/a/4694566/1752929. Моя версия просто устанавливает высоту буфера равной 32766, которая является максимальной доступной высотой буфера.Больше ничего не настраивает.Если есть большой спрос, я мог бы создать более гибкую программу, но обычно вы можете просто установить другие переменные на вкладке макета ярлыка.

Ниже приводится цель, которую я использую в ярлыке, с которого я хочу начать вкаталог f(Я должен установить каталог таким образом, поскольку Windows не позволит вам установить его любым другим способом, если вы хотите запустить командную строку от имени администратора.)

C:\Windows\System32\cmd.exe /k "console & cd /d c:\f"
0 голосов
/ 15 мая 2014

Я нашел способ изменить размер буфера, не влияя на размер окна.Это работает благодаря недостатку в работе пакета, но он выполняет свою работу.

mode 648 78 >nul 2>nul

Как это работает?В этой команде есть синтаксическая ошибка, это должен быть «режим 648, 78».Из-за того, как работает пакет, размер буфера сначала будет изменен до 648, а затем появится окно изменения размера, но оно никогда не завершится из-за синтаксической ошибки.Вуаля, размер буфера регулируется, а размер окна остается прежним.Это приводит к ужасной ошибке, поэтому, чтобы избавиться от нее, просто добавьте "> nul 2> nul", и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...