私は 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
ご覧のとおり、二重引用符で囲まれた文字列でない場合は、$c オブジェクトの Size 属性を簡単に表示できます。括弧なしで展開しようとすると、オブジェクトのみが展開されますが、括弧内に object.attr を含めると、式を認識できません。ここで何が間違っているのでしょうか?