gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:07:30 26 4
gpt4 key购买 nike

谁能告诉我以下 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com