В Windows CMD я могу напечатать mode con /status
чтобы увидеть текущие пределы отображения строк и столбцов CMD. Можно ли подобным образом выяснить, сколько строк и столбцов может в настоящее время помещаться в окне CMD? mode
отображается количество строк и столбцов, которое помещается в буфере, но мне нужно количество, которое визуально помещается в окне CMD. Другими словами, я ищу Windows CMD-эквивалент для команд Unix tput cols
и tput lines
.
2
1 ответ
2
PowerShell предоставляет готовый доступ к ряду свойств консоли:
C:\>powershell -command "&{$H=get-host;$H.ui.rawui;}"
ForegroundColor : Gray
BackgroundColor : Black
CursorPosition : 0,179
WindowPosition : 0,131
CursorSize : 25
BufferSize : 2000,3000
WindowSize : 144,49
MaxWindowSize : 200,85
MaxPhysicalWindowSize : 200,85
KeyAvailable : False
WindowTitle : Command Prompt - powershell -command "&{$H=get-host;$H.ui.rawui;}"
Я уверен, что в powershell есть простой способ получить именно те значения, которые вы хотите, но я новичок в PowerShell. Поэтому я буду использовать старые утилиты командной строки.
C:\>powershell -command "&{$H=get-host;$H.ui.rawui;}"|findstr /b WindowSize
WindowSize : 144,49
Если вам нужны значения в пакетном скрипте, то FOR /F может проанализировать значения для вас:
@echo off
setlocal
for /f "tokens=3,4 delims=, " %%A in (
'powershell -command "&{$H=get-host;$H.ui.rawui;}"^|findstr /b WindowSize'
) do set /a windowWidth=%%A, windowHeight=%%B
Или вы можете изучить PowerShell и делать все это на этом гораздо более мощном языке сценариев.