-
创建选择菜单 这里需要使用$host.UI.PromptForChoice()方法,先查看方法的定义: PS C:PowerShell> .test.ps1 接下来做什么事呢? 请选择: [S] Switchuser [L] LoginOff [L] Lock [R] Reboot [S] Sleep [?] 帮助 (默认值为“L”): Reboot 您选择的是: 重启查看全部
-
多个方法的签名 有些方法名相同,可以接受不同类型或者不同个数的参数,如何查看一个方法支持的所有签名 ,使用Get-Member获取方法对象,然后查看Definition属性。 PS C:Powershell> $method PS C:Powershell> $method=$Host.UI | Get-Member WriteLine PS C:Powershell> $method.Definition System.Void WriteLine(), System.Void WriteLine(System.ConsoleColor foregroundColor, System.ConsoleColor backgroundColor , string value), System.Void WriteLine(string value) 但是Definition的输出阅读不方便,可是稍加润色。 PS C:Powershell> $method.Definition.Replace("),",")`n") System.Void WriteLine() System.Void WriteLine(System.ConsoleColor foregroundColor, System.ConsoleColor backgroundColor, string value) System.Void WriteLine(string value)查看全部
-
低级函数 上述的WriteDebugLine()函数并没有什么特别。事实上所谓的$Host中的很多方法只不过是一些简单的Cmdlets命令。例如使用如下cmdlet输出一条调试通知 PS C:Powershell> Write-Debug "Hello 2012 !" PS C:Powershell> Write-Debug -Message "Hello 2012 !" 上述的命令并没有输出黄色的调试信息,这和$DebugPreference配置有关,因为$DebugPreference的默认值为:SilentlyContinue。 当$DebugPreference为Stop,Continue,Inquire时就会输出调试消息: PS C:Powershell> [System.Enum]::GetNames([System.Management.Automation.ActionPreference]) SilentlyContinue Stop Continue Inquire PS C:Powershell> $DebugPreference="stop" PS C:Powershell> Write-Debug "Hello 2012" 调试: Hello 2012 Write-Debug : 已停止执行命令,因为首选项变量“DebugPreference”或通用参数被设置为 Stop。 所在位置 行:1 字符: 12 + Write-Debug <<<< "Hello 2012" + CategoryInfo : OperationStopped: (:) [W$DebugPreference="continue" PS C:Powershell> Write-Debug "Hello 2012" 调试: Hello 2012 WriteErrorLine,WriteVerboseLine,WriteWarningLine的情况也类似。如果你不想受$DebugPreference配置的依赖,输出错误消息可以直接使用 $host.UI.WriteDebugLine()方法查看全部
-
哪一个参数是必须的 从列表中筛选出一个方法,再通过Get-Member得到更多的信息。 PS C:Powershell> $info=$Host.UI | Get-Member WriteDebugLine PS C:Powershell> $info TypeName: System.Management.Automation.Internal.Host.InternalHostUserInterface Name MemberType Definition ---- ---------- ---------- WriteDebugLine Method System.Void WriteDebugLine(string message) PS C:Powershell> $info.Definition System.Void WriteDebugLine(string message) Definition属性告诉你怎样调用一个方法,每一个方法的定义都会返回一个Objec对象,System.Void 是一个特殊的类型,代表什么都没有,即返回值为空。 接下来就可以根据函数的定义,给它传进合适的参数调用了。 PS C:Powershell> $Host.UI.WriteDebugLine("Hello 2012 !") 调试: Hello 2012 !查看全部
-
有时一个属性期望的赋值必须是一个指定类型的对象。例如WindowSize,如果想改变Powershell的窗口大小,可是设置WindowSize属性,但是它是一个System.Management.Automation.Host.Size对象,怎样获取这个对象呢? 1.先读取属性,保存为临时变量,更改临时变量,将临时变量赋给WindowSize 2.直接创建一个System.Management.Automation.Host.Size,赋给WindowSize PS C:Powershell> $tmp=$Host.UI.RawUI.WindowSize PS C:Powershell> $tmp Width Height ----- ------ 100 60 PS C:Powershell> $tmp.Height=30 PS C:Powershell> $tmp.Width=60 PS C:Powershell> $Host.UI.RawUI.WindowSize=$tmp Width Height ----- ------ 60 30 PS C:Powershell> $Host.UI.RawUI.WindowSize=New-Object System.Management.Automation.Host.Size(60,40) PS C:Powershell> $Host.UI.RawUI.WindowSize Width Height ----- ------ 60 40查看全部
-
可以使用[System.Enum]::GetNames 方法查看ConsoleColor定义的所有颜色。 PS C:Powershell> [System.Enum]::GetNames([System.ConsoleColor]) Black DarkBlue DarkGreen DarkCyan DarkRed DarkMagenta DarkYellow Gray DarkGray Blue Green Cyan Red Magenta Yellow White查看全部
-
属性的类型 有些属性只接受整数值,例如控制台光标的大小,值域在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”。” 所在位置 行:1 字符: 16 + $Host.UI.RawUI. <<<< ForegroundColor="Pink"查看全部
-
只读属性和读写属性 属性可以准确的描述对象,一旦属性更改了。这一更改也会体现在对象上。如果不能更改,属性就是“只读”属性。 通过简单地修改控制台的背景和前景的颜色,可以发现属性更改可以直接反映到对象上。 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 控制台是否接收到了一个按键请求,应当取决于用户的操作,因此该属性拒绝被更改,你只能读取它。查看全部
-
属性中包含对象 一个对象的属性用来存储数据,反过来这些数据又可以存储其它对象。$host有两个比较特别的属性UI和PrivateData。把$host对象输出到控制台上后,除了UI和PrivateData所有的属性都会被转换成确定的文本: PS C:Powershell> $Host Name : ConsoleHost Version : 2.0 InstanceId : 7fefa1fa-fb2e-47c7-a867-c13b123da5c2 UI : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture : zh-CN CurrentUICulture : zh-CN PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace 原因是这两个属性中又包含了一个对象: PS C:Powershell> $Host.UI RawUI ----- System.Management.Automation.Internal.Host.InternalHostRawUserInterface PS C:Powershell> $Host.UI.RawUI ForegroundColor : DarkYellow BackgroundColor : DarkMagenta CursorPosition : 0,23查看全部
-
PS C:Powershell> $Host.CurrentCulture LCID Name DisplayName ---- ---- ----------- 2052 zh-CN 中文(中华人民共和国) PS C:Powershell> $Host.CurrentCulture.GetType().FullName System.Globalization.CultureInfo CurrentCulture包含3个属性,LCID, Name, and DisplayName。通过MSDN查看System.Globalization.CultureInfo的构造函数可知,可以将国家代码和国家名称标志字符串转换成一个新的CultureInfo对象。 PS C:Powershell> [System.Globalization.CultureInfo]'zh-cn' LCID Name DisplayName ---- ---- ----------- 2052 zh-CN 中文(中华人民共和国) PS C:Powershell> [System.Globalization.CultureInfo]'zh-tw' LCID Name DisplayName ---- ---- ----------- 1028 zh-TW 中文(台湾) PS C:Powershell> [System.Globalization.CultureInfo]'en-us' LCID Name DisplayName ---- ---- ----------- 1033 en-US 英语(美国)查看全部
-
可以查看Version的具体类型,也可以访问它的每一个属性: PS C:Powershell> $Host.Version.GetType().FullName System.Version PS C:Powershell> $Host.Version.Build -1 PS C:Powershell> $Host.Version.Major 2 PS C:Powershell> $Host.Version.MajorRevision -1 PS C:Powershell> $Host.Version.Revision -1 查看一个对象的类型很实用,因为可以通过这个类型构造新的对象或者进行类型转换等等。 PS C:Powershell> [System.Version]'2012.12.20.4444' Major Minor Build Revision ----- ----- ----- -------- 2012 12 20 4444 例如CurrentCulture属性,可以通过$host的CurrentCulture访问当前系统的本地化信息和该信息的类型: PS C:Powershell> $Host.CurrentCulture LCID Name DisplayName ---- ---- ----------- 2052 zh-CN 中文(中华人民共和国) PS C:Powershell> $Host.CurrentCulture.GetType().FullName System.Globalization.CultureInfo查看全部
-
可变tuple: 1.在tuple的元素中定义list,list的内容可以改变。查看全部
-
创建单元素tuple要在元素值后加","查看全部
-
tuple创建后不能对元素进行更新操作,创建tuple同list的不同之处是()代替[]。查看全部
-
list中元素取值替换可以用元素索引赋值方式实现。 L = ['Adam', 'Lisa', 'Bart'] L[0] = 'Bart' L[-1] = 'Adam' print L查看全部
举报
0/150
提交
取消