gpt4 book ai didi

字符串变量未在多行字符串中替换

转载 作者:行者123 更新时间:2023-12-04 05:38:13 28 4
gpt4 key购买 nike

这是代码/输出合二为一:

PS C:\code\misc> cat .\test.ps1; echo ----; .\test.ps1
$user="arun"
$password="1234*"
$jsonStr = @"
{
"proxy": "http://$user:$password@org.proxy.com:80",
"https-proxy": "http://$user:$password@org.proxy.com:80"
}
"@
del out.txt
echo $jsonStr >> out.txt
cat out.txt
----
{
"proxy": "http://1234*@org.proxy.com:80",
"https-proxy": "http://1234*@org.proxy.com:80"
}

字符串变量的内容 $user$jsonStr 中未被替换.

替换它的正确方法是什么?

最佳答案

冒号是 scope字符:$scope:$variable . PowerShell 认为您正在调用变量 $password来自范围 $user .您可能能够摆脱子表达式。

$user="arun"
$password="1234*"
@"
{
"proxy": "http://$($user):$($password)@org.proxy.com:80",
"https-proxy": "http://$($user):$($password)@org.proxy.com:80"
}
"@

或者您可以使用格式运算符
$user="arun"
$password="1234*"
@"
{{
"proxy": "http://{0}:{1}@org.proxy.com:80",
"https-proxy": "http://{0}:{1}@org.proxy.com:80"
}}
"@ -f $user, $password

确保在使用格式运算符时转义大括号。

你也可以用反引号来逃避冒号
$jsonStr = @"
{
"proxy": "http://$user`:$password@org.proxy.com:80",
"https-proxy": "http://$user`:$password@org.proxy.com:80"
}
"@

关于字符串变量未在多行字符串中替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28291678/

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