Erweitern von Objektattributen in Powershell-Zeichenfolgen in doppelten Anführungszeichen

Erweitern von Objektattributen in Powershell-Zeichenfolgen in doppelten Anführungszeichen

Ich bin ziemlich neu bei Powershell und habe ein Problem beim Erweitern des Werts eines Objektattributs in einem String in doppelten Anführungszeichen. Kann mir das bitte jemand erklären: Ich würde erwarten, dass Sie „$(var.attr)“ schreiben, aber das schlägt fehl. Hier ist ein Beispiel, das das Problem beschreibt:

     PS C:\WINDOWS\system32> $c = Get-Volume -DriveLetter 'C'
PS C:\WINDOWS\system32> $c.Size
126696288256
PS C:\WINDOWS\system32> "$c.size"
MSFT_Volume (ObjectId = "{1}\\KEPPLAPTOP3\root/Microsoft/Windows...).size
PS C:\WINDOWS\system32> "$(c.size)"
c.size : The term 'c.size' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:4
+ "$(c.size)"
+    ~~~~~~
    + CategoryInfo          : ObjectNotFound: (c.size:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Wie Sie sehen, kann ich das Size-Attribut des $c-Objekts problemlos anzeigen, wenn es sich nicht um eine Zeichenfolge in Anführungszeichen handelt. Wenn ich versuche, es ohne Klammern zu erweitern, wird nur das Objekt erweitert. Wenn ich jedoch object.attr in Klammern einschließe, wird der Ausdruck nicht erkannt. Was mache ich hier falsch?

verwandte Informationen