2017-10-17 22 views
0

我有工作PowerShell代碼從數據庫獲取數據,然後循環訪問行,使用ConvertTo-Json將行轉換爲Json,然後使用Json主體調用Invoke-WebRequest創建。Powershell - 在數據表的每一行上調用Webrequest

我很好奇我是否可以簡化這項任務?

我知道我可以做這樣的事情來創建JSON出每一行:

($UserToUpdate.Tables[0].Rows | select $UserToUpdate.Tables[0].Columns.ColumnName) | ConvertTo-Json 

我想我也許可以做類似

($UserToUpdate.Tables[0].Rows | select $UserToUpdate.Tables[0].Columns.ColumnName) | ConvertTo-Json | Invoke-WebRequest -Headers $headers -Method $method -Uri $uri -Body $body 

但是我不知道如何使用ConvertTo-Json的結果作爲Invoke-Webrequest中的$body

我可能會吠叫錯誤的樹,但認爲這值得嘗試!

回答

1

Powershell管道將您的JSON對象的完整副本傳遞到Invoke-WebRequest,但Invoke-WebRequest默認情況下不知道如何處理它。

要做的最簡單的事情是將它變成Foreach-Object(別名ForEach或只是%,任何工作),然後從那裏操作。

... | ConvertTo-Json | Foreach { Invoke-WebRequest -Body $_ -Uri $Uri } 

的管道對象(在這種情況下,你的JSON字符串)將由{}腳本塊內的$_變量Foreach

希望可以幫助您得到這個工作後表示。

相關問題