对象在程序开发中的概念可以说都一样。对象通常有自己的属性和方法,比如一个人,它的属性有肤色 /身高/ 性别 等,方法有 走路 /躺下 /呼喊 等。PowerShell 中提供了对象的定义。下面测试使用方法。


当前版本:

PowerShell 对象(Object)_静态属性


创建对象:

$Service=New-Object object

PowerShell 对象(Object)_静态属性_02



添加成员:属性

$Service | Add-Member NoteProperty StaticNum 100
$Service | Add-Member NoteProperty StaticStr ABCDE

Add-Member -InputObject $Service -MemberType NoteProperty -Name Color -Value "Red"
Add-Member -InputObject $Service -MemberType NoteProperty -Name Weight -Value "55"

PowerShell 对象(Object)_当前版本_03



添加成员:方法

$Service | Add-Member ScriptMethod MethodA { "print AAAAA!" }
$Service | Add-Member ScriptMethod MethodB { "print BBBBB!" }

Add-Member -In $Service -MemberType ScriptMethod -name GStr -Value { "print test!" }
Add-Member -In $Service -MemberType ScriptMethod -name GDate -Value { Get-Date }

PowerShell 对象(Object)_PowerShell_04



查看对象所有属性或方法: (Static 为静态属性或方法)

$Service | Get-Member
$Service | Get-Member -MemberType *Property*
$Service | Get-Member -MemberType Method
$Service | Get-Member -Static -MemberType Method

PowerShell 对象(Object)_PowerShell_05



查看类型:

$Service.StaticNum.GetType()
$Service.Color.GetType().FullName
$Service.GDate.GetType().FullName

PowerShell 对象(Object)_PowerShell_06



查看定义:

$Service.GStr.Script
$Service.GDate.Script
$Service.GDate

PowerShell 对象(Object)_当前版本_07




查看属性和执行方法:

$Service.Color
$Service.StaticStr
$Service.GStr()
$Service.GDate()

PowerShell 对象(Object)_静态属性_08



属性重新赋值:

$Service.Color = "Green"
$Service.Color

PowerShell 对象(Object)_当前版本_09




对象属性值的多种情况定义:(-Force  如果存在则替换)

$Service | Add-Member -MemberType NoteProperty -Name AddTimeA -Value ( Get-Date )
$Service | Add-Member -MemberType NoteProperty -Name AddTimeB -Value { Get-Date }

$Service | Add-Member -MemberType ScriptProperty -Name AddTimeC -Value { Get-Date }
$Service | Add-Member -MemberType ScriptProperty -Name GetAddTimeC -Value { $Service.AddTimeC }
$Service | Add-Member -MemberType ScriptProperty -Name GetAddTimeC -Value { $Service.AddTimeC } -Force


结果:

$Service.AddTimeA #静态时间
$Service.AddTimeB #输出字符:Get-Date
$Service.AddTimeC #动态时间
$Service.GetAddTimeC #动态时间

PowerShell 对象(Object)_PowerShell_10



参考:​​New-Object​​​  ​​http://www.pstips.net/powershell-online-tutorials​