2

В Windows CMD я могу напечатать mode con /status чтобы увидеть текущие пределы отображения строк и столбцов CMD. Можно ли подобным образом выяснить, сколько строк и столбцов может в настоящее время помещаться в окне CMD? mode отображается количество строк и столбцов, которое помещается в буфере, но мне нужно количество, которое визуально помещается в окне CMD. Другими словами, я ищу Windows CMD-эквивалент для команд Unix tput cols и tput lines .

1 ответ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 и делать все это на этом гораздо более мощном языке сценариев.

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