Hyu*_*ang 7 powershell powershell-ise windows-console
我的环境中的最大行数是 47。
我可以通过编程来测量这个值吗?
mkl*_*nt0 11
为了补充Christian.K 的有用答案:
获取主机对象的一种更简单且稍微更有效的方法是使用$Host 自动变量而不是Get-Hostcmdlet。
仅保证您能够访问PowerShell控制台主机中的窗口大小信息,即在控制台(终端)窗口中运行时
要测试您的代码是否在控制台(也称为终端)中运行,请使用
$Host.UI.SupportsVirtualTerminal-$True指示主机是控制台。
您可以访问控制台的属性:
via $Host.UI.RawUI(如 Christian 的回答),它是一个类型的对象[System.Management.Automation.Internal.Host.InternalHostRawUserInterface]-仅在 PowerShell 控制台主机中- 包装 .NET[Console]类(见下文)。
通过.NET[Console]类;例如,要以这种方式获取窗口高度(行数),请使用:
[Console]::WindowHeight示例$Host.UI.RawUI输出:
PS> $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
Run Code Online (Sandbox Code Playgroud)
从 PowerShell版本 5.1开始编写
中的大多数属性$Host.UI.RawUI未填充,并将返回其数据类型的默认值:
PS> $Host.UI.RawUI # in the ISE
ForegroundColor : -1
BackgroundColor : -1
CursorPosition : 0,0
WindowPosition :
CursorSize :
BufferSize : 166,0
WindowSize :
MaxWindowSize :
MaxPhysicalWindowSize :
KeyAvailable :
WindowTitle : Windows PowerShell ISE
Run Code Online (Sandbox Code Playgroud)
唯一可用的与大小相关的信息是缓冲区宽度(在166上面的示例输出中)。
[Console]除了查询/设置用于与外部程序通信的字符编码之外,尝试在 ISE 中使用 .NET 类没有任何意义:[[Console]::OutputEncoding 1 ]
最初在会话中,尝试使用 的窗口相关成员会[Console]导致异常,因为 ISE 在启动时不会分配控制台窗口:
# In a pristine session.
PS> [Console]::WindowHeight
The handle is invalid. # EXCEPTION
Run Code Online (Sandbox Code Playgroud)
虽然 ISE按需分配隐藏控制台窗口,即您第一次在会话中运行控制台应用程序时,该隐藏控制台窗口的属性(随后通过 报告)[Console]并不反映ISE 所报告的模拟控制台的属性。呈现给用户。
# chcp is a console application, so when it is run,
# the ISE allocates a (hidden) console window,
# after which the [Console] API becomes technically usable,
# but DOESN'T REPORT MEANINGFUL VALUES.
PS> chcp >$null; [Console]::WindowHeight
72 # No exception, but the value is meaningless.
Run Code Online (Sandbox Code Playgroud)
[1] 请注意,ISE 默认为系统的旧版ANSI代码页,而常规控制台窗口默认为OEM代码页。因此,默认情况下,这两个环境对外部程序的输出进行不同的解码。
| 归档时间: |
|
| 查看次数: |
2578 次 |
| 最近记录: |