我對 Powershell 相當陌生。我正在嘗試為 Invoke-PowerBIRestMethod 構建正文以更新 Power BI 報告中的引數。格式是
Invoke-PowerBIRestMethod -Url $url -Method Post -Body ("$body")
這是我在測驗中一直使用的主體并且它有效,報告中的引數 ServerName 更新為 $NewServerName 值:
$body = @"
{
"updateDetails": [
{
"name": "ServerName", "newValue": "$NewServerName"
}
]
}
"@
需求發生了變化,我需要使其更具動態性。用戶將手動輸入有序對,而不是對需要更新的引數進行硬編碼。并且需要更新的引數可能不止一個。
我不確定格式化輸入引數的最佳方式。我認為他們輸入 param1:newvalue;param2:newvalue;param3:newvalue 等。它需要盡可能簡單,因為用戶將輸入它。然后在 Powershell 腳本中,我會將其決議為 $body 格式。
而且我不確定如何將輸入引數決議為 $body 格式。格式最終將是這樣的:
$body = @"
{
"updateDetails": [
{
"name": "$param1", "newValue": "$newvalue1"
},
{
"name": "$param2", "newValue": "$newvalue2"
}
]
}
"@
任何人都可以提供一些建議嗎?
uj5u.com熱心網友回復:
使用您的示例名稱/值輸入,更好地創建如下所示的正文:
$UpdateData = 'ServerName;facetsmo03;Dataset;Interop Oversight'.Split(';')
$body = [PsCustomObject]@{
updateDetails = for ($i = 0; $i -lt $UpdateData.Count; $i = 2) {
[PsCustomObject]@{name = $UpdateData[$i]; newvalue = $UpdateData[$i 1]}
}
} | ConvertTo-Json
$body 現在包含此 JSON 字串:
{
"updateDetails": [
{
"name": "ServerName",
"newvalue": "facetsmo03"
},
{
"name": "Dataset",
"newvalue": "Interop Oversight"
}
]
}
您可能希望發布此內容的精簡版本,并為此將附加開關添加-Compress到 ConvertTo-Json cmdlet,創建$body如下所示:
{"updateDetails":[{"name":"ServerName","newvalue":"facetsmo03"},{"name":"Dataset","newvalue":"Interop Oversight"}]}
uj5u.com熱心網友回復:
我想出了一種方法來獲得我需要的東西。它只是決議一個字串并創建一個字串。我試圖找出陣列和所有這些,但最后我需要做的就是創建一個格式正確的字串。這是在有人感興趣的情況下有效的代碼。$UpdateParams 將是一個引數,其中的內容是某人將輸入的內容。可能有更好的方法來做到這一點,但這是有效的,所以我現在很好。:)
$UpdateParams = "ServerName;facetsmo03;Dataset;Interop Oversight"
$UpdateData = $UpdateParams.split(';')
# SETUP BEGINNING OF BODY
$body = '@"' "`n" "{" "`n" '"updateDetails": [ ' "`n"
foreach ($item in $UpdateData) {
if ($UpdateData.IndexOf($item) % 2 -eq 0) {
# ADD NAME OF PARAMETER TO CHANGE
$body = "{`n" '"name":' '"' $item '"' ",`n"
}
else {
# ADD NEW VALUE FOR PARAMETER
$body = '"newValue":' '"' $item '"' "`n" "},`n"
}
}
# ADD ENDING BODY TEXT
$body = $body.Substring(0,$body.Length - 2) "`n]`n}`n" '"@'
$body
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/366199.html
標籤:电源外壳
