使用Powershell,我们如何连接两个包含双引号的字符串变量?

使用Powershell,我们如何连接两个包含双引号的字符串变量?,powershell,Powershell,我将遵循本文提供的示例,介绍如何手动构建用于Invoke WebRequest的头 上述条目中给出的样品溶液为: $user = 'user' $pass = 'pass' $pair = "$($user):$($pass)" $encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair)) $basicAuthValue = "Ba

我将遵循本文提供的示例,介绍如何手动构建用于Invoke WebRequest的头

上述条目中给出的样品溶液为:

$user = 'user'
$pass = 'pass'

$pair = "$($user):$($pass)"

$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))

$basicAuthValue = "Basic $encodedCreds"

$Headers = @{
    Authorization = $basicAuthValue
}

Invoke-WebRequest -Uri 'https://whatever' -Headers $Headers
我在连接$user和$pass时遇到问题,因为$pass的值包含双引号


如何正确连接这些变量?

我无法在PS 5.1和PS Core上复制这一点。据我所知,PS应该为您自动解决变量扩展,即使它有

然后Base64解码返回:

PS C:\> [system.text.encoding]::ASCII.GetString([system.convert]::FromBase64String($encodedCreds))
user.example:password."example

我无法在PS 5.1和PS Core上复制此功能。据我所知,PS应该自动解决变量扩展,即使它有

然后Base64解码返回:

PS C:\> [system.text.encoding]::ASCII.GetString([system.convert]::FromBase64String($encodedCreds))
user.example:password."example

你能详细说明你所说的麻烦是什么意思吗?是否有错误?是的,如果查看我粘贴的示例代码,变量$pair用于存储$user、冒号和$pass的串联值。但由于$pass的值包含一个双引号,这会导致powershell接受该双引号作为字符串的终止符。@LesterTriple7源代码中的
字符将在上面两行(
$pass=…
),那么为什么它会被解释为从下面两行开始的字符串文字的字符串终止符呢?请发布一个屏幕截图或错误消息,无论哪个工具表现出这种行为,您是否可以详细说明出现问题是什么意思?您是否收到任何错误?是的,如果您查看我粘贴的示例代码,就会使用变量$pair存储$user、冒号和$pass的串联值。但由于$pass的值包含双引号,这会导致powershell接受该双引号作为字符串的终止符。@LesterTriple7源代码中的
字符将在上面两行(
$pass=…
),那么,为什么它会被解释为从下面两行开始的字符串文字的字符串终止符呢?请发布任何显示此行为的工具的屏幕截图或错误消息