控制Powershell控制台的窗口位置

时间:2011-09-29 21:29:39

标签: powershell batch-file

这有效:

(Get-Host).UI.RawUI
$a = (Get-Host).UI.RawUI
$a.BackgroundColor = "white"
$a.ForegroundColor = "black"

$size = (Get-Host).UI.RawUI.WindowSize
$size.Width = 80
$size.Height = 30
(Get-Host).UI.RawUI.WindowSize = $size

但是这不起作用,我不确定如何使它工作:

$position = (Get-Host).UI.RawUI.Windowposition
$position.X = 0
$position.Y = 30
(Get-Host).UI.RawUI.Windowposition = $position

我得到的错误很奇怪。当我尝试设置外部窗口位置时,它会抱怨“缓冲区”:

Exception setting "WindowPosition": "Cannot use the 
specified Window X (column) position because it extends 
past the width of the screen buffer. Specify another X 
position, starting with 0 as the left most column of 
the buffer.

2 个答案:

答案 0 :(得分:4)

错误并不奇怪,因为WindowPosition Gets and sets the position, in characters, of the view window relative to the screen buffer.

它没有设置Window的位置,而是粗略地说明了通过窗口视图看到的缓冲区中的位置。所以在你的情况下,你得到错误,因为它在缓冲区之外。

http://msdn.microsoft.com/en-us/library/system.management.automation.host.pshostrawuserinterface.windowposition%28v=vs.85%29.aspx

不幸的是,设置窗口的位置并不简单。但是它有一个管道 - http://wasp.codeplex.com/(使用Set-WindowPosition

答案 1 :(得分:3)

看一下这个脚本:Resize-Console.ps1 – Resize console window/buffer using arrow keys

它本身很有用,部分应该回答问题(尺寸部分)。