gpt4 book ai didi

string - 为什么Powershell不评估表达式

转载 作者:行者123 更新时间:2023-12-03 01:14:59 24 4
gpt4 key购买 nike

而不是写这个

$criteria = 'id=' + '"' + $pdt_code + '"'

我想要这样的东西:
$criteria = 'id="$($pdt_code)"'

但是Powershell不评估该表达式,原因为何:正确的语法是什么?

为什么这样做有效,而不是上面的方法(请参阅 List all nodes which sub-node meta contains some value 123456)?
$meta = $xml.SelectSingleNode("//catalogue/produits/produit[@id='$($_.id)']/metas/meta[@code='$meta_code']")

最佳答案

仅对双引号字符串"..."中的变量进行评估。您的字符串是用单引号引起来的:

$criteria = 'id="$($pdt_code)"'
# ^ single quotes ^

您应该改写:
$criteria = "id=""$pdt_code"""

还要注意,您需要将字符串内的 "字符加倍,以便PowerShell将它们视为文字 "字符而不是字符串的结尾。

您的第二个示例有效,因为它使用了双引号字符串(用于评估变量):
$meta = $xml.SelectSingleNode("//catalogue/produits/produit[@id='$($_.id)']/metas/meta[@code='$meta_code']")
# ^ double quotes ^

解析字符串文字时,PowerShell仅关心字符串结尾处的引号字符。

关于string - 为什么Powershell不评估表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31866957/

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