我想循环这个if语句
我已经尝试了所有类似的方法:foreach
,do..while
,do..until
。结果是错误的,因为他在foreach
中将$i
中的所有日期都放在一行中。我想要的是将$i
的每个结果放在单独的行中。或在单独的流程中为每个if
执行此$i
声明。
function testfunction {
$CurrentDate = Get-Date -Format yyyy-MM-dd
$Authorization = "Bearer APIKEY"
$Accept = "application/json"
$Content = "application/json"
$resource = "URL"
$a = Invoke-RestMethod -Method Get -Uri $resource -Headers @{
"Authorization" = $Authorization
"Accept" = $Accept
"Content" = $Content
}
$Result = @()
foreach ($get in $a) {
$b = $get.rows | select asset_tag, serial, notes -First 2
$g = $get.rows | select custom_fields -First 2
$h = $get.rows | select Ueberschreibschutz -First 2
$i = $get.rows.custom_fields.Ueberschreibschutz | select value -First 2
$j = $get.rows.custom_fields | select Mediensatz -First 2
$k = $get.rows.custom_fields.Mediensatz | select value -First 2
$l = $get.rows |select status_label -First 2
$m = $get.rows.status_label | select name -First 2
$ResultItem = New-Object PSObject;
$ResultItem | Add-Member NoteProperty "asset_tag" $b.asset_tag;
$ResultItem | Add-Member NoteProperty "SNR" $b.serial;
$ResultItem | Add-Member NoteProperty "status_label" $l.status_label.name;
$ResultItem | Add-Member NoteProperty "notes" $b.notes;
$ResultItem | Add-Member NoteProperty "Ueberschreibschutz" $g.custom_fields.Ueberschreibschutz.value;
$ResultItem | Add-Member NoteProperty "Mediensatz" $g.custom_fields.Mediensatz.value;
$Result += $ResultItem;
foreach ($x in $i) {
$x = $i | where {$_ -eq "value"}
if ($CurrentDate -ge $g.custom_fields.Ueberschreibschutz.value) {
Write-Host -ForegroundColor Green $b.asset_tag "ist ein" $g.custom_fields.Mediensatz.value "und es darf benutzt werden"
} else {
Write-Host -ForegroundColor Red $b.asset_tag "ist ein" $g.custom_fields.Mediensatz.value "und es darf nicht benutzt werden"
}
}
}
return
}
Clear-Host
$result1 = testfunction
Write-Host $result1
我希望像这样
AA-100111 ist ein B2T-M und es darf benutzt werden BB-200222 ist ein B2T-D und es darf benutzt werden