O PowerShell fornece acesso imediato a várias propriedades do console:
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;}"
Tenho certeza de que existe uma maneira simples de obter os valores que você deseja, mas eu sou um neófito no PowerShell. Então, vou usar os utilitários de linha de comando antigos.
C:\>powershell -command "&{$H=get-host;$H.ui.rawui;}"|findstr /b WindowSize
WindowSize : 144,49
Se você precisar dos valores em um script em lote, um FOR / F poderá analisar os valores para você:
@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
Ou você pode aprender o PowerShell e fazer tudo com uma linguagem de script muito mais poderosa.