如何通过PowerShell从AppVeyor API获取构建作业jobid属性?
我已从AppVeyor API获得此JSON:如何通过PowerShell从AppVeyor API获取构建作业jobid属性?,powershell,Powershell,我已从AppVeyor API获得此JSON: $build = Invoke-WebRequest -Uri https://ci.appveyor.com/api/projects/XXX/XXX/branch/master | ConvertFrom-Json 我需要看看这个阵列: $build.build.jobs 返回: jobId : jgc1moa0o1tjdkyq name : Environme
$build = Invoke-WebRequest -Uri https://ci.appveyor.com/api/projects/XXX/XXX/branch/master | ConvertFrom-Json
我需要看看这个阵列:
$build.build.jobs
返回:
jobId : jgc1moa0o1tjdkyq
name : Environment: PYTHON=C:\Python35, PYTHON_VERSION=3.5.x, PYTHON_ARCH=32
allowFailure : False
messagesCount : 0
compilationMessagesCount : 0
compilationErrorsCount : 0
compilationWarningsCount : 0
testsCount : 0
passedTestsCount : 0
failedTestsCount : 0
artifactsCount : 1
status : success
started : 2017-03-23T08:34:59.2087897+00:00
finished : 2017-03-23T08:37:03.7539463+00:00
created : 2017-03-23T08:34:52.1106626+00:00
updated : 2017-03-23T08:37:03.7539463+00:00
jobId : 3yqddtiapirm49ow
name : Environment: PYTHON=C:\Python35-x64, PYTHON_VERSION=3.5.x, PYTHON_ARCH=64
allowFailure : False
messagesCount : 0
compilationMessagesCount : 0
compilationErrorsCount : 0
compilationWarningsCount : 0
testsCount : 0
passedTestsCount : 0
failedTestsCount : 0
artifactsCount : 1
status : success
started : 2017-03-23T08:37:08.5375578+00:00
finished : 2017-03-23T08:39:10.7684334+00:00
created : 2017-03-23T08:34:52.4856621+00:00
updated : 2017-03-23T08:39:10.7840711+00:00
我需要jobId
其中名称包含Python35-X64
下面的表达式不返回任何内容,我做错了什么
$job_id = $build.build.jobs | where { $_.name -like "*Python35-X64*" }
表达式不返回任何内容,因为结果被分配给变量
$job\u id
。本例中的变量不包含作业id,而是包含作业对象
$job = $build.build.jobs |? name -like "*Python35-X64*" | Select-Object -First 1;
$job;
$job_id = $job.jobId;
注意:如果不选择第一个结果,$job
将包含一个作业数组,以防多个名称与where子句匹配
如果要直接选择jobId
属性,可以按如下操作
$job_id = ($build.build.jobs |? name -like "*Python35-X64*" | Select-Object -First 1).jobId;
这应该行得通,那个属性是字符串吗?那个么为什么这是一个东西呢?如果我这样做
$job\u id=$build.build.jobs | where{$\u.name-比如“*Python35-X64*”}
它返回一个包含“Python35-X64”的对象数组@4c74356b41,我不确定我是否正确理解了你的评论。我在回答中写了警告,因为变量名为$job\u id
,如果该变量包含多个id,我会将该变量重命名为$job\u id
,这样就不会有其他程序员意外地暗示始终只分配了一个id。