Powershell Özel Özellikleri - Özellik adını değiştir


2

Özel bir nesnem var ve var olan özelliklerden birinin özellik adını değiştirmek istiyorum. Mümkün mü? Yeni adla yeni bir özellik oluşturabileceğimi, eski özellikten değerleri kopyalayabileceğimi ve yalnızca istediğim özellikleri seçebileceğimi biliyorum (yeni özellik, ancak eski olanı hariç), ancak daha basit bir yol var mı?

Yanıtlar:


2

Nesne özellikleri ile "Ad" salt okunur bir özelliktir ve çalışma zamanı boyunca değiştirilemez.

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

Yeni bir özellik oluşturmaya ve değerleri kopyalamaya bir alternatif , yeni bir özellik olan ("kendi adına sahip") varolan bir özelliğe bağlı yeni bir " AliasProperty " oluşturmak olabilir .

Örneğin.:

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

Yukarıdaki cevaba ekleyerek, gibi bir şey yapabilirsiniz

$ obj2 = $ objtest | NotFoo, NotBar'ı seçin

Asıl üyeleri kalıcı olarak kaldırmak için

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.