Kri*_*hna 6 powershell powershell-3.0
我正在尝试使用PowerShell脚本设置PowerShell窗口的大小.我正在使用的代码是
$pshost = Get-Host
$psWindow = $pshost.UI.RawUI
$newSize =$psWindow.BufferSize
$newSize.Height = 4000
$newSize.Width = 200
$psWindow.BufferSize = $newSize
$newSize = $psWindow.WindowSize
$newSize.Height = 95
$newSize.Width = 150
$psWindow.WindowSize= $newSize
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下工作正常,但有时我会在某些桌面大小上出错.例如,我尝试使用95并因以下错误而失败,我的桌面屏幕大小为1440x960.
Exception setting "WindowSize": "Window cannot be taller than 82.
Parameter name: value.Height
Actual value was 95."
At line:1 char:5
+ $psWindow.WindowSize= $newSize
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting
Run Code Online (Sandbox Code Playgroud)
有没有办法可以计算运行脚本的机器上的最大窗口大小设置并设置PowerShell窗口的大小?
Aus*_*nch 11
你已经在正确的课程.
(Get-Host).UI.RawUI.MaxWindowSize
Run Code Online (Sandbox Code Playgroud)
或者更具体地说:
$height = (Get-Host).UI.RawUI.MaxWindowSize.Height
$width = (Get-Host).UI.RawUI.MaxWindowSize.Width
Run Code Online (Sandbox Code Playgroud)
您可以尝试将其设置为所需的值,然后在出现错误时将其设置为错误状态下的最大值。对于宽度,将其设置为与缓冲区宽度相同
function Set-ConsoleWindow
{
param(
[int]$Width,
[int]$Height
)
$WindowSize = $Host.UI.RawUI.WindowSize
$WindowSize.Width = [Math]::Min($Width, $Host.UI.RawUI.BufferSize.Width)
$WindowSize.Height = $Height
try{
$Host.UI.RawUI.WindowSize = $WindowSize
}
catch [System.Management.Automation.SetValueInvocationException] {
$Maxvalue = ($_.Exception.Message |Select-String "\d+").Matches[0].Value
$WindowSize.Height = $Maxvalue
$Host.UI.RawUI.WindowSize = $WindowSize
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15680 次 |
| 最近记录: |