gpt4 book ai didi

powershell - 将字符串值 "$false"转换为 bool 变量

转载 作者:行者123 更新时间:2023-12-04 14:10:28 26 4
gpt4 key购买 nike

我这样做的原因
我正在尝试在我拥有的文件中设置 token 。 token 的内容是文件中的第 1 行,它的字符串值为 $token=$false简化测试代码
当我尝试将此 token 转换为 bool 值时,遇到了一些问题。所以我编写了测试代码,发现我无法将字符串转换为 bool 值。

[String]$strValue = "$false"
[Bool]$boolValue = $strValue

Write-Host '$boolValue =' $boolValue
这给出了以下错误...
Cannot convert value "System.String" to type "System.Boolean", parameters of this type only accept booleans or numbers, use $true, $false, 1 or 0 instead.
At :line:2 char:17
+ [Bool]$boolValue <<<< = $strValue
如您所见,我正在使用 $false错误消息所建议的值,但它不接受它。有任何想法吗?

最佳答案

在 PowerShell 中,通常的转义字符是反引号。普通字符串被插入:$符号由 PowerShell 理解和解析。您需要逃离 $以防止插值。这应该适合你:

[String]$strValue = "`$false"

要将 "$true"或 "$false"以通用方式转换为 bool 值,您必须首先删除前导 $ :
$strValue = $strValue.Substring(1)

然后转换为 bool 值:
[Boolean]$boolValue = [System.Convert]::ToBoolean($strValue)

使用您评论中的代码,最短的解决方案是:
$AD_Export_TokenFromConfigFile =
[System.Convert]::ToBoolean(Get-Content $AD_Export_ConfigFile
| % {
If($_ -match "SearchUsersInfoInAD_ConfigToken=") {
($_ -replace '*SearchUsersInfoInAD_ConfigToken*=','').Trim()
}
}.Substring(1))

关于powershell - 将字符串值 "$false"转换为 bool 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36273558/

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