"$($var)"
выводит значение переменной $var
в подвыражении, а затем помещает этот вывод в строку. Затем строка используется в качестве аргумента в операторе Set-ItemProperty
.
("$var")
помещает значение переменной $var
в строку и оценивает ее в выражении группировки (аналогично подвыражению, но нене допускайте многократных заявлений). Выходные данные из выражения группировки (которое в данном случае является строкой) затем передаются в качестве аргумента в операторе Set-ItemProperty
.
Ничего не требуется в вашем примере оператора. Использование переменной само по себе является достаточным.
Set-ItemProperty -Path $var -Name $var2 -Value $var3
Вы бы использовали подвыражение ($(...)
) в строке, если вы хотите вставить в строку что-то, кроме простой переменной, в строку с другим текстом какнапример, вывод другого оператора:
"foo $(Get-Date) bar"
значение свойства объекта:
"foo $($var.Foo) bar"
или элемента массива:
"foo $($var[5]) bar"
потому что иначе они не могут быть использованы непосредственно в строке. Если вам нужно вставить значение переменной в строку, вы можете сделать это без подвыражения:
"foo ${var} bar"
Вы бы использовали группирующее выражение ((...)
), если вы хотите вывод выраженияиспользуется в качестве аргумента оператора:
Do-Something -Foo (Get-Date)
Вставка только строки в подвыражение не имеет никакого смысла.