我正在尝试使用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它在大多数情况下都工作得很好,但有时我会在某些桌面大小上遇到错误。例如,我尝试使用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有没有办法在运行脚本的机器上计算最大窗口大小设置,并设置PowerShell窗口的大小?
发布于 2016-08-17 22:38:53
你已经在正确的路线上了。
(Get-Host).UI.RawUI.MaxWindowSize或者更具体地说:
$height = (Get-Host).UI.RawUI.MaxWindowSize.Height
$width = (Get-Host).UI.RawUI.MaxWindowSize.Width发布于 2016-08-17 22:32:21
您可以尝试将其设置为所需的值,然后在出错时将其设置为最大值所表示的任何错误状态。对于宽度,请将其设置为与缓冲区宽度相同
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
}
}https://stackoverflow.com/questions/38999092
复制相似问题