Was ist in Powershell der Unterschied zwischen -Property und -ExpandProperty?

450
Laura

Beim Ausführen der Cmdlets unterscheiden sich die Ausgaben geringfügig, und ich versuche nur, den Unterschied zwischen den beiden Cmdlets und den Grund dafür zu verstehen, warum Sie eines davon verwenden.

Beispiel:

Get-Date | Select -Property DayOfWeek 

Ausgabe:

DayOfWeek --------- Saturday 


Get-Date | Select -ExpandProperty DayOfWeek  Saturday 
2
Danke für deine Hilfe. Ich habe mehrere Suchanfragen ausprobiert, um verschiedene Informationen über diese Befehle zu erhalten, und ich konnte nichts finden. Sie haben mir gerade eine ganze Informationsquelle für zukünftige Fragen gegeben, die ich auch habe, also nochmals vielen Dank! Ich bin dankbar: D Laura vor 6 Jahren 0

1 Antwort auf die Frage

2
maoizm

Intro

Sie können jedes Objekt in Powershell überprüfen, indem Sie es dem Cmdlet Format-List zuführen:

PS> Get-Date | Format-List  DisplayHint : DateTime Date : 2018-10-21 0:00:00 Day : 21 DayOfWeek : Sunday DayOfYear : 294 Hour : 18 Kind : Local Millisecond : 28 Minute : 38 Month : 10 Second : 36 Ticks : 636757439160281486 TimeOfDay : 18:38:36.0281486 Year : 2018 DateTime : 21 жовтня 2018 р. 18:38:36 

Dann können Sie das Objekt ändern, z. Erstellen Sie das neue Objekt mit einer Teilmenge der Eigenschaften des ursprünglichen Objekts. Dazu verwenden Sie das Cmdlet Select-Object und die Liste der erforderlichen Eigenschaften im -PropertyParameter.

Select-Objecthat einen Standard-Alias Select, aber ich schlage vor, dass Sie Powershell lernen und Ihren Code mit externen Parteien austauschen, z. Bei Superuser.com verwenden Sie keine Aliasnamen, sondern nur die vollständigen Namen der Cmdlets, um die Übersichtlichkeit zu verbessern

Antworten

  • Get-Date | Select-Object -Property DayOfWeekerstellt ein Objekt, das nur eine Eigenschaft DayOfWeekdes Objekts hat, die von Get-Date zurückgegeben wird

  • Get-Date | Select-Object -ExpandProperty DayOfWeekgibt den String mit dem Inhalt der DayOfWeekEigenschaft zurück

Diese beiden Parameter von select werden auch hier näher erläutert: https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell.utility/select-object?view=powershell-6 Pimp Juice IT vor 6 Jahren 1
@PimpJuiceIT Danke, das wird auch hilfreich sein. Bei der Betrachtung dieser Frage habe ich daran gedacht, dass diese "offensichtlichen" Dinge wie der Unterschied zwischen Situationen, in denen der Befehl einen String mit einem String zurückgibt, im Vergleich zu einem einfach aussehenden Objekt zurückgegeben werden, in den Lernprogrammen nicht eindeutig beschrieben sind und ich bis zu allem eine sehr nicht-intuitive Lernkurve durchlaufen musste Komme an seine Orte. maoizm vor 6 Jahren 1
Verstanden, manchmal kann der Wortlaut von Erklärungen und dergleichen schwer zu interpretieren sein. Dort reinzukommen und zu laufen, zu vergleichen und zu lesen, scheint für mich gut zu funktionieren, aber eine klarere und prägnantere Erklärung schadet nie. Pimp Juice IT vor 6 Jahren 0