我有一个Azure DevOps组织,有300多个项目,我想从组织中提取所有DevOps项目的发布。我试过使用下面的PowerShell脚本,但它只是一次给出100条记录。而且它还说提取的json文件不是有效的格式。
这是我的PowerShell脚本。
$token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
$url = "https://dev.azure.com/{orgnization}/_apis/projects?api-version=6.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token" } -Method Get -ContentType application/json
Foreach ($projectName in $response.value.name) {
$url1 = "https://vsrm.dev.azure.com/{orgnization}/$($projectname)/_apis/release/releases?api-version=6.0"
$response = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token" } -Method Get -ContentType application/json-patch
echo $response | ConvertTo-Json -Depth 99 | Out-File "D:\file.json" -Append
}
我尝试添加$top
参数与第一个API调用工作正常,如果我在浏览器中尝试,但在PowerShell它不工作。
https://dev.azure.com/uniperteamservices/_apis/projects?api-version=6.0&$top=500
我怎样才能完成以下两个要求?
- 如何提取所有记录,而不仅仅是100
- 为什么提取的json文件显示为无效格式,当我转换到excel?
如果您能根据我的要求修改以上PowerShell脚本,我将不胜感激。
感谢在调试器中逐步检查代码
用双引号括起来的$top
将尝试插入一个名为$top
的变量。您需要用'字符转义$
。例如
`$top