如何使用powershell中的foreach循环将搜索结果存储到表中? 导入模块 $JAMSHistories=获取JAMSHistory-服务器TESTDUMMY2-开始日期“2020年1月20日”-结束日期“2020年1月24日” $historyTable=@() foreach($JAMSHistories中的JAMSHistories) { $row=新对象-类型名称PSObject 编写主机$JAMSHistory.FinalSeverity 如果($JAMSHistory.finalsevirity-匹配“成功”) { $row |添加成员-NotePropertyName作业严重性成功($JAMSHistory.finalVerity) } 否则{ if($JAMSHistory.finalVerity-匹配“错误”){ $row |添加成员-NotePropertyName JobSeverityError($JAMSHistory.finalVerity)} }$historyTable+=$row } $historyTable

如何使用powershell中的foreach循环将搜索结果存储到表中? 导入模块 $JAMSHistories=获取JAMSHistory-服务器TESTDUMMY2-开始日期“2020年1月20日”-结束日期“2020年1月24日” $historyTable=@() foreach($JAMSHistories中的JAMSHistories) { $row=新对象-类型名称PSObject 编写主机$JAMSHistory.FinalSeverity 如果($JAMSHistory.finalsevirity-匹配“成功”) { $row |添加成员-NotePropertyName作业严重性成功($JAMSHistory.finalVerity) } 否则{ if($JAMSHistory.finalVerity-匹配“错误”){ $row |添加成员-NotePropertyName JobSeverityError($JAMSHistory.finalVerity)} }$historyTable+=$row } $historyTable,powershell,Powershell,您可以执行以下操作,这将输出一个对象数组($historyTable),其属性名为JobSeveritySuccess和JobSeverityError Import-Module <JAMS> $JAMSHistories = Get-JAMSHistory -Server TESTDUMMY2 -StartDate "01/20/2020" -EndDate "01/24/2020" $historyTable = @() foreach($JAMSHistory in $

您可以执行以下操作,这将输出一个对象数组(
$historyTable
),其属性名为
JobSeveritySuccess
JobSeverityError

Import-Module <JAMS>

$JAMSHistories = Get-JAMSHistory -Server TESTDUMMY2 -StartDate "01/20/2020" -EndDate "01/24/2020"

$historyTable = @()

foreach($JAMSHistory in $JAMSHistories)
{
    $row = New-Object -TypeName PSObject

    Write-Host $JAMSHistory.FinalSeverity
    if($JAMSHistory.FinalSeverity -match 'Success') 
    {
        $row | Add-Member -NotePropertyName JobSeveritySuccess ($JAMSHistory.FinalSeverity)
    }
    else {
        if ($JAMSHistory.FinalSeverity -match 'Error') {
            $row | Add-Member -NotePropertyName JobSeverityError ($JAMSHistory.FinalSeverity) }
    } $historyTable += $row 
} 

$historyTable 
这种方法的问题是每个对象都有
jobserveritysuccess
jobserverityError
属性,它们可能是空的。两个属性只有在
$JAMSHistory.finalVerity
包含同一对象的
错误和
成功时才会有数据。如果提供了更多的需求,那么可能有更好的设计方法



在做这类练习时,总会有一些问题。考虑创建一个新的<代码> PSObjs<代码>或<代码> PSCuto Objult<代码>循环迭代。然后在循环代码的末尾输出该对象。收集
foreach
循环输出时,只需设置一个等于
foreach
循环的变量。很少需要使用
+=
来构建
foreach
循环输出的数组。这可能有一些例外,但大多数时候它们是很好的事情。

这里的代码有错误吗?欢迎使用堆栈溢出。
$JAMSHistory
对象的具体属性是什么?您想要作为结果的
表是什么?(一个或一组PSObject?
$JAMSHistories = Get-JAMSHistory -Server TESTDUMMY2 -StartDate "01/20/2020" -EndDate "01/24/2020"

$historyTable = foreach ($JAMSHistory in $JAMSHistories) {

    $row = "" | Select JobSeveritySuccess,JobSeverityError
    if ($JAMSHistory.FinalSeverity -match 'Success') {
        $row.JobSeveritySuccess = $JAMSHistory.FinalSeverity
    }
    elseif ($JAMSHistory.FinalSeverity -match 'Error') {
        $row.JobSeverityError = $JAMSHistory.FinalSeverity
    }
    $row
}
# Output 
$historyTable
# Output in Table Format
$historyTable | Format-Table