gpt4 book ai didi

powershell - 创建JSON对象时如何在PowerShell中转义特殊字符

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

我有在安装时在安装程序中运行的powershell脚本。我尝试了许多示例来转义特殊字符,这意味着,如果用户选择用户名或密码,并且包含诸如斜杠或逗号之类的字符,则powershell无法创建json对象。有时,如果用户输入逗号,而不是将其作为字符串,它将分成json数组。以下是我的示例,变量的值来自安装程序,它们是有效的字符串。感谢您的见解。

$pathToJson = $InstalledPath+"appsettings.json"
$a = Get-Content $pathToJson | ConvertFrom-Json
$a.SQLConnectionSettings.SqlServerIp=$GkDbIP
$a.SQLConnectionSettings.SqlInitialCatalog=$GkDbName
$a.SQLConnectionSettings.SqlIntegratedSecurity=$SqlAuthType
$a.SQLConnectionSettings.SqlUserId=$GkDbUsername
$a.SQLConnectionSettings.SqlPassword=$SQLPassword
$a | ConvertTo-Json | set-content $pathToJson

最佳答案

您可以使用 Regex.Unescape 释放json内容。例如:

$OBJECT = @{username="someone"; password="someone's \password"}
$OBJECT | ConvertTo-Json -depth 100 |
% { [System.Text.RegularExpressions.Regex]::Unescape($_) } |
Out-File "D:\somefile.json" -Encoding utf8

结果如下:
{
"password": "someone's \password",
"username": "someone"
}

如果您不使用unescape,则密码将另存为 "someone\u0027s \\password"

关于powershell - 创建JSON对象时如何在PowerShell中转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47725755/

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