Thuộc tính tùy chỉnh Powershell - Thay đổi tên thuộc tính


2

Tôi có một đối tượng tùy chỉnh và tôi muốn thay đổi tên thuộc tính của một trong các thuộc tính hiện có. Điều đó có thể không? Tôi biết tôi có thể tạo một thuộc tính mới với tên mới, sao chép các giá trị từ thuộc tính cũ và sau đó chỉ chọn các thuộc tính tôi muốn (thuộc tính mới, nhưng loại trừ thuộc tính cũ), nhưng có cách nào đơn giản hơn không?

Câu trả lời:


2

Với thuộc tính đối tượng "Tên" là thuộc tính chỉ đọc và do đó không thể thay đổi trong thời gian chạy.

$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.

Một thay thế để tạo một thuộc tính mới và sao chép các giá trị có thể là tạo một " AliasProperty " mới, đó là một thuộc tính mới (có tên riêng) được liên kết đơn giản với một thuộc tính hiện có.

ví dụ.:

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

0

Thêm vào câu trả lời ở trên, bạn có thể làm một cái gì đó như

$ obj2 = $ objtest | chọn NotFoo, NotBar

Để xóa vĩnh viễn các thành viên ban đầu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.