Расширение атрибутов объектов в строках Powershell, заключенных в двойные кавычки

Расширение атрибутов объектов в строках Powershell, заключенных в двойные кавычки

Я довольно новичок в Powershell, и я столкнулся с проблемой расширения значения атрибута объекта в строке в двойных кавычках. Может кто-нибудь объяснить мне это: я ожидал, что вы напишете "$(var.attr)", но это не срабатывает, вот пример, описывающий проблему:

     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

Как видите, я могу легко отобразить атрибут Size объекта $c, если он не заключен в строку с двойными кавычками. Когда я пытаюсь развернуть его без скобок, он только разворачивает объект, но когда я включаю object.attr в скобки, он не может распознать выражение. Что я здесь делаю неправильно?

Связанный контент