Windows Powershell属性:描述对象是什么

2019-09-30 14:46:35王旭

通过简单地修改控制台的背景和前景的颜色,可以发现属性更改可以直接反映到对象上。


PS C:Powershell> $host.ui.rawui.BackgroundColor = "Green"
PS C:Powershell> $host.ui.rawui.ForegroundColor = "White"
PS C:Powershell> cls

有的属性不能更改,如果尝试修改,就会抛出异常。


PS C:Powershell> $Host.UI.RawUI.KeyAvailable
False
PS C:Powershell> $Host.UI.RawUI.KeyAvailable=$false

“KeyAvailable”为 ReadOnly 属性。

所在位置 行:1 字符: 16
+ $Host.UI.RawUI. <<<< KeyAvailable=$false
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

控制台是否接收到了一个按键请求,应当取决于用户的操作,因此该属性拒绝被更改,你只能读取它。

RawUI的属性

ForegroundColor:前景色
BackgroundColor:背景色
CursorPosition:光标的位置
WindowPosition:窗口的位置
CursorSize:光标的大小
BufferSize:缓冲区的大小
WindowSize:窗口的大小
MaxWindowSize:允许窗口的最大值
MaxPhysicalWindowSize:窗口可能的最大值
KeyAvailable:是否存在按键
WindowTitle:窗口的标题

属性的类型

有些属性只接受整数值,例如控制台光标的大小,值域在0-100,用来控制关闭大小的百分比。可以将光标设置为75%,但是不能超过100%,否则就会产生错误。


PS C:Powershell> $Host.UI.RawUI.CursorSize=75
PS C:Powershell> $Host.UI.RawUI.CursorSize=101

设置“CursorSize”时发生异常:“无法处理 CursorSize,因为指定的光标大小无效。
参数名: value
实际值是 101。”
所在位置 行:1 字符: 16

+ $Host.UI.RawUI. <<<< CursorSize=101
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

另一个属性ForegoundColor的类型为Color枚举值。因此给ForegoundColor所赋的值必须是已经在System.ConsoleColor中定义过的。可以将“Black”但是不能使用“Pink”

PS C:Powershell> $Host.UI.RawUI.ForegroundColor="Black"
PS C:Powershell> $Host.UI.RawUI.ForegroundColor="Pink"
设置“ForegroundColor”时发生异常:“由于枚举值无效,无法将值“Pink”转换为类型“System.ConsoleColor
”。请指定以下枚举值之一,然后重试。可能的枚举值为“Black、DarkBlue、DarkGreen、DarkCyan、DarkRed、
DarkMagenta、DarkYellow、Gray、DarkGray、Blue、Green、Cyan、Red、Magenta、Yellow、White”。”