比如下图,我的环境最大行数是47。
我可以以编程方式测量这个值吗?
最佳答案
补充 Christian.K's helpful answer :
$Host
automatic variable 而不是 Get-Host
cmdlet。 $Host.UI.SupportsVirtualTerminal
- $True
表示主机是控制台。 如果在 PowerShell 控制台主机 中运行:
您 可以访问控制台的属性 或者:
$Host.UI.RawUI
(如 Christian 的回答),这是一个 [System.Management.Automation.Internal.Host.InternalHostRawUserInterface]
类型的对象 - 仅在 PowerShell 控制台主机中 - 包装 .NET [Console]
类(见下文)。 [Console]
class ;例如,要以这种方式获取窗口高度(行数),请使用:[Console]::WindowHeight
$Host.UI.RawUI
输出示例:> $Host.UI.RawUI
ForegroundColor : DarkYellow
BackgroundColor : DarkMagenta
CursorPosition : 0,58
WindowPosition : 0,0
CursorSize : 25
BufferSize : 160,9999
WindowSize : 160,75
MaxWindowSize : 160,94
MaxPhysicalWindowSize : 303,94
KeyAvailable : True
WindowTitle : Windows PowerShell
如果在 PowerShell ISE 中运行:
编写自 PowerShell 版本 5.1
$Host.UI.RawUI
中的大多数属性都没有填充 并将返回其数据类型的默认值:> $Host.UI.RawUI # in ISE
ForegroundColor : -1
BackgroundColor : -1
CursorPosition : 0,0
WindowPosition :
CursorSize :
BufferSize : 166,0
WindowSize :
MaxWindowSize :
MaxPhysicalWindowSize :
KeyAvailable :
WindowTitle : Windows PowerShell ISE
唯一可用的大小相关信息 是 缓冲区宽度 (上面示例输出中的
166
)。请注意,如果您尝试直接从 ISE 使用
[Console]
,则会出现异常:> [Console]::WindowHeight
The handle is invalid. # EXCEPTION
...
关于powershell - 如何在powershell中测量窗口高度(行数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871264/