我正在尝试编写一些powershell脚本来管理对api的调用,如果我将结果存储在一个变量中,我可以很好地迭代它们,但是我想了解如何通过管道来实现它
这有效
#This uri returns an array of objects that describe searches via the api
$reports = Invoke-RestMethod -uri $(root)/search -Method get -UseDefaultCredentials
foreach($r in $reports){
#can do stuff here
}
如果我这样做,我会在控制台窗口中显示结果
$reports = Invoke-RestMethod -uri $(root)/search -Method get -UseDefaultCredentials | select
但我找不到在管道
之后使用结果内容的方法#nothing displayed in the console for this
$reports = Invoke-RestMethod -uri $(root)/search -Method get -UseDefaultCredentials | ForEach-Object { Write-Host $_.Id }
访问管道搜索结果中的项目的正确方法是什么?
答案 0 :(得分:2)
您正在执行此操作,只需将其传递到Foreach-Object cmdlet:
:silent !touch '%:p:h'/*.less && exit 0 | unsilent! | echo "file touched"
如果将结果分配给变量,您将获得Invoke-RestMethod -uri $(root)/search -Method get -UseDefaultCredentials | ForEach-Object {
# $_ equals $r in your first example
}
的管道结果。