如何删除错误。我的 notcontains 逻辑有缺陷
How do I remove Error. My logic for notcontains is flawed
我建了一个对象数组,如果有错误有兴趣记录一下。
对象数组开始是这样的
[array]$UsersResults = $GSuspend | ForEach-Object {
gam update user $_.primaryEmail archived on | Out-Null
[PSCustomObject]@{
Email = $_.primaryEmail
Error = $LASTEXITCODE
}
}
我只是想知道是否有任何错误不为 0。
如果每个错误都是 0。稍后在我的脚本中,我从数组中删除了错误列,但我很确定下面的逻辑是有缺陷的。
If (-not ($UsersResults.error -notcontains 0)) {
有没有一种简单的方法可以让我找到大于 0 的错误编号,或者如果发现错误则仅将错误添加到脚本顶部的数组中?
使用Where-Object
根据Error
列的值过滤数组:
$failedResults = $UsersResults |Where-Object Error -ne 0
if($failedResults.Count -gt 0){
Write-Warning "'$($failedResults.Count)' errors occurred!"
}
else {
Write-Host "No errors occurred!"
}
如果您希望结果只是电子邮件地址的平面数组,请使用 $UsersResults.Email
或 $UsersResults |ForEach-Object Name
。如果您想要一个保留 Email
属性 但没有 Error
属性 的新对象数组,请使用 $UsersResults |Select-Object Email
我建了一个对象数组,如果有错误有兴趣记录一下。 对象数组开始是这样的
[array]$UsersResults = $GSuspend | ForEach-Object {
gam update user $_.primaryEmail archived on | Out-Null
[PSCustomObject]@{
Email = $_.primaryEmail
Error = $LASTEXITCODE
}
}
我只是想知道是否有任何错误不为 0。
如果每个错误都是 0。稍后在我的脚本中,我从数组中删除了错误列,但我很确定下面的逻辑是有缺陷的。
If (-not ($UsersResults.error -notcontains 0)) {
有没有一种简单的方法可以让我找到大于 0 的错误编号,或者如果发现错误则仅将错误添加到脚本顶部的数组中?
使用Where-Object
根据Error
列的值过滤数组:
$failedResults = $UsersResults |Where-Object Error -ne 0
if($failedResults.Count -gt 0){
Write-Warning "'$($failedResults.Count)' errors occurred!"
}
else {
Write-Host "No errors occurred!"
}
如果您希望结果只是电子邮件地址的平面数组,请使用 $UsersResults.Email
或 $UsersResults |ForEach-Object Name
。如果您想要一个保留 Email
属性 但没有 Error
属性 的新对象数组,请使用 $UsersResults |Select-Object Email