G R*_*bin 4 powershell powershell-4.0
我有一个自定义对象,我想更改现有属性之一的属性名称。那可能吗?我知道我可以使用新名称创建一个新属性,复制旧属性中的值,然后仅选择我想要的属性(新属性,但排除旧属性),但是有没有一种更简单的方法?
对于对象属性,“Name”是只读属性,因此无法在运行时更改。
$objTest = New-Object -TypeName PSObject -Property @{ Foo = 42; Bar = 99 }
$objTest.PSObject.Properties["Foo"].Name # Output: Foo.
$objTest.PSObject.Properties["Foo"].Name = "NotFoo" # Output: 'Name' is a ReadOnly property.
Run Code Online (Sandbox Code Playgroud)
创建新属性和复制值的替代方法可能是创建新的“ AliasProperty ”,这是一个简单链接到现有属性的新属性(具有自己的名称)。
例如。:
PS Y:\> $objTest | Add-Member -MemberType AliasProperty -Name Notfoo -Value Foo
PS Y:\> $objtest
Bar Foo Notfoo
--- --- ------
99 42 42
PS Y:\> $objtest.Foo = 123
PS Y:\> $objtest
Bar Foo Notfoo
--- --- ------
99 123 123
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8431 次 |
| 最近记录: |