Вот что я придумал:
@echo off
FOR /F "delims=" %%G in ('powershell.exe -executionpolicy unrestricted $host.UI.RawUI.WindowSize.Height') do SET height=%%G
echo %height%
IF /I "%height%" GEQ "37" mode con: cols=100 lines=37
IF /I "%height%" LEQ "36" mode con: cols=100 lines=37
pause
Эта часть использует PowerShell для определения высоты окна CMD. Затем он помещает его в переменную% height%.
IF /I "%height%" GEQ "37" mode con: cols=100 lines=37
Эта часть говорит нормально, если найденная нами высота больше или равна 37, тогда давайте изменим размер буфера / окна на 37.
IF /I "%height%" LEQ "36" mode con: cols=100 lines=37
Эта часть говорит, что если найденная нами высота меньше или равна 36, тогда давайте изменим размер буфера / окна на 37.
Вы можете создать файл .bat с этим кодом (вызов resize.bat) и в конце сделать:
выход / b
Тогда из вашего основного файла .bat вы можете сделать
позвоните resize.bat
Затем просто укажите это так часто, как это необходимо, чтобы проверить размер и изменить его размер.
Что касается полного отключения, я не думаю, что вы можете. Кроме того, люди редко меняют размер окна cmd, поскольку в этом нет особого смысла.