我有一個 PowerShell 腳本,它將從 API 呼叫中提取 JSON 并添加一個附加值,但是在呼叫中,在雙引號中顯示附加值以及雙引號上的反斜杠之后進行的呼叫。任何想法可能是錯誤的以及如何解決這個問題?
$Exclusion = @{};
# The Value here needs to have a slash but cant get it working
$Exclusion | Add-Member -Type NoteProperty -Name 'path' -Value '\stuff'
$Exclusion | Add-Member -Type NoteProperty -Name 'violations' -Value @()
$Exclusion = $Exclusion | ConvertTo-Json -Compress
write-Host $Exclusion
$policyWebResponse.memoryviolation.memory_exclusion = $Exclusion
當我列印 $Exclusion 的值時的結果看起來不錯
write-Host $Exclusion:
{"path":"\\stuff","violations":[]}
但是,當它運行 POST 時,輸出顯示為
"{\"path\":\"\\\\stuff\",\"violations\":[]}"
#Debug
Write-Host("Policy dump: ");
Write-Host $newPolicyJson
Results:
"memory_exclusion": [
{
"violations": [],
"path": "\\existing\path"
},
"{\"path\":\"\\\\stuff\",\"violations\":[]}"
],
"memory_exclusion_list": [
"\\existing\path2"
]
},
結果:"{\"path\":\"\\\\stuff\",\"violations\":[]}"
想要:{"path":"\\stuff","violations":[]}
uj5u.com熱心網友回復:
問題出現在您讓 convertto-json cmdlet 運行兩次的程序中。
'{"path":"\\stuff","violations":[]} '| ConvertTo-Json
正是結果,你得到
順便說一句,你的代碼有點奇怪。您創建一個哈希表,然后通過 Add-Member 添加成員。
要么使用
$Exclusion = @{};
$Exclusion.path = '\stuff'
$Exclusion.violations = @()
或者當您更喜歡 PSCustomObject 時
$Exclusion = [PSCustomObject]@{
path = '\stuff';
violations= @()
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/323318.html
標籤:电源外壳
下一篇:從提升的腳本訪問用戶環境變數?
