是否可以在 Windows 中获取当前 CMD 窗口大小(行和列)?

是否可以在 Windows 中获取当前 CMD 窗口大小(行和列)?

在 Windows CMD 中,我可以键入mode con /status以查看 CMD 的当前行和列显示限制。是否可以以类似的方式确定 CMD 窗口内当前可以容纳多少行和多少列?mode显示缓冲区内可容纳的行数和列数,但我需要可容纳的行数和列数明显地在 CMD 窗口内。换句话说,我正在寻找与 Unix 命令tput cols和等效的 Windows CMD tput lines

答案1

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,并使用功能更强大的脚本语言完成整个操作。

答案2

可以使用以下命令显示 CMD 窗口内最大可见的数量:

powershell -command "&{(get-host).ui.rawui.MaxPhysicalWindowSize;}"

输出内容如下:

Width Height
----- ------
  240     63

如果只想显示当前 CMD 窗口中的金额,请使用:

powershell -command "&{(get-host).ui.rawui.WindowSize;}"

答案3

如果您只是想看到它,您可以右键单击标题栏,转到属性,转到布局,然后在“窗口大小”中它会向您显示它。

答案4

寻找一个可以做到这一点的 C++ 程序,我发现

因为我也需要这个,所以我对它进行了一些修改并进行了编译。

您可以从以下位置下载这里,包括预编译的二进制文件(两种架构)、哈希和源代码。

相关内容