`

PowerShell基础教程(14)——使用静态类和方法

阅读更多

PowerShell基础教程(14)——使用静态类和方法   <o:p></o:p>

不是所有的 .NET Framework 类都可使用 New-Object 进行创建。例如,如果尝试使用 New-Object 创建 System.Environment System.Math 对象,则将收到以下错误消息:

PS> New-Object System.Environment<o:p></o:p>

New-Object :找不到构造函数。无法找到适合类型 System.Environment 的构造函数。<o:p></o:p>

所在行:1 字符:11 <o:p></o:p>

+ New-Object  <<<< System.Environment<o:p></o:p>

PS> New-Object System.Math<o:p></o:p>

New-Object :找不到构造函数。无法找到适合类型 System.Math 的构造函数。<o:p></o:p>

所在行:1 字符:11 <o:p></o:p>

+ New-Object  <<<< System.Math<o:p></o:p>

<o:p> </o:p>

之所以出现这些错误是因为无法从这些类中创建新的对象。这些类是不能更改状态的方法和属性的引用库。您无法创建这些类,只能使用他们。由于不能创建、销毁或更改这些类和方法,因此将这些类和方法称为静态类。为了清楚了解此部分内容,我们将提供使用静态类的示例。

使用 System.Environment 获取环境数据<o:p></o:p>

通常 Windows PowerShell 中处理对象的第一步为使用 Get-Member 显示该对象包含的成员。使用静态类,过程可能稍有差异,这是因为实际类不是对象。

引用 System.Environment 静态类<o:p></o:p>

通过使用方括号括住类名称可以引用静态类。例如,可以在方括号中键入名称来引用 System.Environment。从而,就可显示一些泛型类型的信息:

PS> [System.Environment]<o:p></o:p>

<o:p> </o:p>

IsPublic IsSerial Name                                     BaseType<o:p></o:p>

-------- -------- ----                                     --------<o:p></o:p>

True     False    Environment                              System.Object<o:p></o:p>

<o:p> </o:p>

<!---->请注意: <o:p></o:p>

如上所述在使用 New-Object Windows PowerShell 将自动加上System.以便于键入名称。在使用方括号类型名称时亦即如此,因此,可以将 [System.Environment] 指定为 [Environment]<o:p></o:p>

Windows PowerShell 中工作时System.Environment 类可包含有关当前进程的工作环境powershell.exe的常规信息。

若要通过键入 [System.Environment] | Get-Member 来查看此类的详细信息则对象类型将报告为 System.RuntimeType而不是 System.Environment

PS> [System.Environment] | Get-Member<o:p></o:p>

<o:p> </o:p>

TypeName:System.RuntimeType<o:p></o:p>

<o:p> </o:p>

若要使用 Get-Member 查看静态成员请指定 Static 参数

PS> [System.Environment] | Get-Member -Static<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

TypeName:System.Environment<o:p></o:p>

<o:p> </o:p>

Name                       MemberType Definition<o:p></o:p>

----                       ---------- ----------<o:p></o:p>

Equals                     Method     static System.Boolean Equals(Object ob...<o:p></o:p>

Exit                       Method     static System.Void Exit(Int32 exitCode)<o:p></o:p>

...<o:p></o:p>

CommandLine                Property   static System.String CommandLine {get;}<o:p></o:p>

CurrentDirectory           Property   static System.String CurrentDirectory ...<o:p></o:p>

ExitCode                   Property   static System.Int32 ExitCode {get;set;}<o:p></o:p>

HasShutdownStarted         Property   static System.Boolean HasShutdownStart...<o:p></o:p>

MachineName                Property   static System.String MachineName {get;}<o:p></o:p>

NewLine                    Property   static System.String NewLine {get;}<o:p></o:p>

OSVersion                  Property   static System.OperatingSystem OSVersio...<o:p></o:p>

ProcessorCount             Property   static System.Int32 ProcessorCount {get;}<o:p></o:p>

StackTrace                 Property   static System.String StackTrace {get;}<o:p></o:p>

SystemDirectory            Property   static System.String SystemDirectory {...<o:p></o:p>

TickCount                  Property   static System.Int32 TickCount {get;}<o:p></o:p>

UserDomainName             Property   static System.String UserDomainName {g...<o:p></o:p>

UserInteractive            Property   static System.Boolean UserInteractive ...<o:p></o:p>

UserName                   Property   static System.String UserName {get;}<o:p></o:p>

Version                    Property   static System.Version Version {get;}<o:p></o:p>

WorkingSet                 Property   static System.Int64 WorkingSet {get;}<o:p></o:p>

TickCount                               ExitCode<o:p></o:p>

<o:p> </o:p>

现在可以从 System.Environment 中选择要查看的属性。

显示 System.Environment 的静态属性<o:p></o:p>

System.Environment 的属性也是静态的因此必须采用与标准属性的指定方式不同的方式进行指定。从而,使用 :: 来指示 Windows PowerShell 要进行处理的静态方法或属性。若要查看用于启动 Windows PowerShell 的命令,则可通过键入以下命令来检查 CommandLine 属性:

PS> [System.Environment]::Commandline<o:p></o:p>

"C:\Program Files\Windows PowerShell\v1.0\powershell.exe"<o:p></o:p>

<o:p> </o:p>

若要检查操作系统版本则可通过键入以下命令显示 OSVersion 属性

PS> [System.Environment]::OSVersion<o:p></o:p>

<o:p> </o:p>

Platform ServicePack         Version             VersionString<o:p></o:p>

           -------- -----------         -------             -------------<o:p></o:p>

Win32NT Service Pack 2      5.1.2600.131072     Microsoft Window...<o:p></o:p>

<o:p> </o:p>

通过显示 HasShutdownStarted 属性可以检查计算机是否正在关闭

PS> [System.Environment]::HasShutdownStarted<o:p></o:p>

False<o:p></o:p>

<o:p> </o:p>

使用 System.Math 进行数学运算<o:p></o:p>

对于进行某些数学运算System.Math 静态类非常有用。System.Math 的重要成员绝大部分为方法,使用 Get-Member 显示这些方法。

<!----><!----><!---->请注意: <o:p></o:p>

System.Math 中有几种方法同名,但通过它们使用的参数类型可进行区分。<o:p></o:p>

键入以下命令可列出 System.Math 类中的方法

PS> [System.Math] | Get-Member -Static -MemberType Methods<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

TypeName:System.Math<o:p></o:p>

<o:p> </o:p>

Name                       MemberType Definition<o:p></o:p>

----            ---------- ----------<o:p></o:p>

Abs             Method     static System.Single Abs(Single value), static Sy...<o:p></o:p>

Acos            Method     static System.Double Acos(Double d)<o:p></o:p>

Asin            Method     static System.Double Asin(Double d)<o:p></o:p>

Atan            Method     static System.Double Atan(Double d)<o:p></o:p>

Atan2           Method     static System.Double Atan2(Double y, Double x)<o:p></o:p>

BigMul          Method     static System.Int64 BigMul(Int32 a, Int32 b)<o:p></o:p>

Ceiling         Method     static System.Double Ceiling(Double a), static Sy...<o:p></o:p>

Cos             Method     static System.Double Cos(Double d)<o:p></o:p>

Cosh            Method     static System.Double Cosh(Double value)<o:p></o:p>

DivRem          Method     static System.Int32 DivRem(Int32 a, Int32 b, Int3...<o:p></o:p>

Equals          Method     static System.Boolean Equals(Object objA, Object ...<o:p></o:p>

Exp             Method     static System.Double Exp(Double d)<o:p></o:p>

Floor           Method     static System.Double Floor(Double d), static Syst...<o:p></o:p>

IEEERemainder   Method     static System.Double IEEERemainder(Double x, Doub...<o:p></o:p>

Log             Method     static System.Double Log(Double d), static System...<o:p></o:p>

Log10           Method     static System.Double Log10(Double d)<o:p></o:p>

Max             Method     static System.SByte Max(SByte val1, SByte val2), ...<o:p></o:p>

Min             Method     static System.SByte Min(SByte val1, SByte val2), ...<o:p></o:p>

Pow             Method     static System.Double Pow(Double x, Double y)<o:p></o:p>

ReferenceEquals Method     static System.Boolean ReferenceEquals(Object objA...<o:p></o:p>

Round           Method     static System.Double Round(Double a), static Syst...<o:p></o:p>

Sign            Method     static System.Int32 Sign(SByte value), static Sys...<o:p></o:p>

Sin             Method     static System.Double Sin(Double a)<o:p></o:p>

Sinh            Method     static System.Double Sinh(Double value)<o:p></o:p>

Sqrt            Method     static System.Double Sqrt(Double d)<o:p></o:p>

Tan             Method     static System.Double Tan(Double a)<o:p></o:p>

Tanh            Method     static System.Double Tanh(Double value)<o:p></o:p>

Truncate        Method     static System.Decimal Truncate(Decimal d), static...<o:p></o:p>

<o:p> </o:p>

这将显示几种数学方法。此处的命令列表演示了一些常用方法的工作原理

PS> [System.Math]::Sqrt(9)<o:p></o:p>

3<o:p></o:p>

PS> [System.Math]::Pow(2,3)<o:p></o:p>

8<o:p></o:p>

PS> [System.Math]::Floor(3.3)<o:p></o:p>

3<o:p></o:p>

PS> [System.Math]::Floor(-3.3)<o:p></o:p>

-4<o:p></o:p>

PS> [System.Math]::Ceiling(3.3)<o:p></o:p>

4<o:p></o:p>

PS> [System.Math]::Ceiling(-3.3)<o:p></o:p>

-3<o:p></o:p>

PS> [System.Math]::Max(2,7)<o:p></o:p>

7<o:p></o:p>

PS> [System.Math]::Min(2,7)<o:p></o:p>

2<o:p></o:p>

PS> [System.Math]::Truncate(9.3)<o:p></o:p>

9<o:p></o:p>

PS> [System.Math]::Truncate(-9.3)<o:p></o:p>

-9<o:p></o:p>

分享到:
评论

相关推荐

    PowerShell基础教程.doc

    PowerShell的基础教程主要涵盖了它与传统外壳程序的区别、Cmdlet的使用、全新的脚本语言特性和与Windows命令及实用工具的集成。 1. **处理方式的不同**: PowerShell 不像传统的Cmd.exe或其他Unix外壳程序那样处理...

    PowerShell教程

    3. **PowerShell的函数、安全和错误调试**:这部分可能讲解了如何定义和使用自定义函数,以及如何确保PowerShell脚本的安全性和调试方法。 学习这些教程,无论是初学者还是有经验的管理员,都能提升在Windows环境中...

    Windows PowerShell教程合集

    --|PowerShell基础教程 --|WindowsPowerShelluserGuide |powershell 中文教程 --|Windows PowerShell 入门指南.pdf --|Windows PowerShell 入门.pdf --|Windows PowerShell 语言快速参考.rtf |Manning.Windows....

    PowerShell基础教程

    【PowerShell基础教程】 PowerShell是一种专为管理和自动化Windows操作系统设计的强大脚本语言,自Windows XP/Server 2003起,它逐渐成为Vista、Server 2008及后续版本的标准组件。PowerShell旨在提升系统管理员的...

    PowerShell 基础教程

    【PowerShell基础教程】 PowerShell是一种强大的脚本语言和命令行shell,主要应用于Windows操作系统,如XP、Server 2003、Vista和Server 2008。不同于传统的外壳程序(如Cmd.exe、SH、KSH、CSH和BASH),PowerShell...

    经典PowerShell入门教程.docx

    PowerShell是一种强大的命令行接口和脚本语言,主要为Windows操作系统设计,支持Windows XP/Server 2003/Vista/Server 2008及更高版本。它的开发代号为Monad,旨在提供更高效、更面向对象的管理工具。传统外壳程序如...

    powershell教程

    ### PowerShell 教程详解 #### 一、PowerShell 概述与重要性 PowerShell 是一个强大的命令行脚本环境,由微软开发并提供支持,主要用于 Windows 系统的管理和自动化任务处理。自 Exchange Server 2007 和 System ...

    Win7PowerShell使用教程

    Win7PowerShell使用教程,学习这个脚本还是有好处的,看看吧

    powershell 教程

    PowerShell是一种功能强大的命令行shell和脚本语言,它由微软开发,主要用于任务自动化和配置管理。PowerShell的功能非常广泛,可以用于系统管理、网络管理、应用程序管理等众多方面。尤其在服务器管理领域,...

    Windows PowerShell系列课程(1):PowerShell概览及使用技巧

    3. **脚本语言**:PowerShell使用.NET Framework为基础的脚本语言,支持高级编程结构,如函数、变量、条件语句和循环。 **PowerShell的优势** 包括: 1. **面向对象的输出**:每个命令的结果通常是一个对象,可以...

    powershell中英文教程

    提供的"Powershell 中文教程"可能涵盖了如何使用PowerShell ISE,这是一个用于编写、测试和调试PowerShell脚本的集成环境。ISE提供了语法高亮、自动完成、调试工具等功能,对于初学者尤其友好。 3. **PowerShell...

    powershell3.0经典教程

    - PowerShell 3.0 是在PowerShell 2.0的基础上发展起来的,它增加了许多新的功能和改进,使得用户在执行日常任务和自动化复杂操作时更为高效。 - 通过提供更加丰富的命令行工具和改进的用户体验,PowerShell 3.0...

    Powershell 实例教程

    PowerShell 是一个强大的命令行脚本环境,专为Windows操作系统设计,用于系统管理和应用程序自动化。它不仅扩展了传统的命令提示符(cmd.exe),而且从根本上改变了交互式管理的方式。PowerShell 基于.NET框架,因此...

    PowerShell 入门基础教程

    该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。 现在win2008,win7都集成了PowerShell,系统不带PowerShell可以自行到官方下载安装即可。 下载地址://www.jb51.net/jiaoben/67200.html ...

    Powershell管理系列教程.docx

    PowerShell管理系列教程主要涉及如何使用PowerShell来管理和操作Active Directory(AD),特别是关于用户管理和组织单位(OU)的管理。PowerShell是一种强大的命令行工具,尤其适用于Windows系统管理和自动化任务,...

    Powershell教程

    非常好用的Powershell教程,共享给大家

    exchange/powershell,Java调用powershell开通邮箱

    标题 "exchange/powershell,Java调用powershell开通邮箱" 暗示了这是一个关于使用Java编程语言调用PowerShell脚本在Exchange服务器上创建邮箱的教程或项目。Exchange是微软提供的一款企业级电子邮件服务器软件,而...

    监控局域网内 共享打印机powershell脚本

    监控局域网内:共享打印机 获取打印记录、打印人员、打印文件等详细信息。导出为excel表格

Global site tag (gtag.js) - Google Analytics