powershell - PowerShell 中的 "$($var)"和 ("$var") 之间有什么区别

标签 powershell

谁能告诉我以下 PowerShell 命令之间有什么区别(如果有):

Set-ItemProperty -Path "$($var)" -Name $var2 -Value $var3


Set-ItemProperty -Path ("$var") -Name $var2 -Value $var3

$var 是一个注册表位置,即 HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion...

我还看到两者都用于 New-ItemProperty 中的 Path 参数

最佳答案

"$($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)

仅将字符串放入子表达式中没有任何意义。

关于powershell - PowerShell 中的 "$($var)"和 ("$var") 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437379/

相关文章:

file - 如何在powershell中比较两个csv文件而不指定属性

Powershell ConvertTo-Json 缺少方括号并添加新字符

powershell - Outlook PowerShell 脚本无法检索最新电子邮件

powershell - Install-ADServiceAccount的目的

powershell - Windows上用于Matlab编译器运行时的Docker构建(非交互式安装)

powershell - 在Powershell中使用不同的输入多次调用同一函数的最佳方法是什么

.net - Powershell 和 HtmlAgilityPack

powershell - Sitecore powershell 控制台不显示状态字段

c# - 编写C#PowerShell cmdlet-如何将调试日志记录输出到TeamCity调用者

c# - Powershell 使用来自 Add-Type 的 C# 代码使 shell 崩溃 (SystemParamtersInfo)