Вам нужно будет предотвратить преждевременное расширение вашей переменной, чтобы получить доступ к значению ее свойства. Оператор подвыражения $()
позволяет оценивать все, что находится внутри, как выражение.
$jsobj = @"
{
val1 : "test",
val2 : "test1"
}
"@ | ConvertFrom-Json
Write-Host @"
Value of val1: $($jsobj.val1)
"@
Когда переменная находится внутри расширяемой строки (одна с внешними двойными кавычками), переменная заменяется ее ToString()
значение. Все, что находится после этой переменной, рассматривается как часть строки, а не как переменная. Ниже приведен тривиальный пример.
$str = 'my string'
"$str.Length"
my string.Length