匹配并筛选 CSV 中的列以获得所需的输出



我有一个备份报告,其中有多个列。我只想得到那些从未在特定群体中取得成功的客户。如果具有相同存储集的同一客户机在其他组中成功,那么我也应该将客户机作为失败的特定组的客户端。

Get-Content E:ReportDaily_Failed.csv |
ConvertFrom-Csv |
Select-Object -Unique * |
Group-Object -Property 'Client Name','Save Set Name','Group' |
Where-Object { $_.Count -eq 1 -and $_.Group.Status -eq 'Failed' } |
Select-Object -Expand Group |
Select-Object "Client Name", "Save Set Name", "status", "Group" |
Export-Csv -NoTypeInformation E:ReportFinal_Failed.csv

输入

Client Name,Save Set Name,Group,Status
SQL01.abc.com,MSSQL, D_CWT_SQL_FULL,Failed
SQL01.abc.com,MSSQL:master,D_CWT_SQL_FULL, Success
SQL01.abc.com,MSSQL:model,D_CWT_SQL_FULL,Failed
SQL01.abc.com,MSSQL:msdb,D_CWT_SQL_FULL,Failed
SQL01.abc.com,MSSQL,SQL_T-Log_15Mins,Success
SQL01.abc.com,MSSQL:master,SQL_T-Log_15Mins,Failed
SQL01.abc.com,MSSQL:model,SQL_T-Log_15Mins,Success
SQL01.abc.com,MSSQL:msdb,SQL_T-Log_15Mins,Success
5001.abc.com,G:System,CWT_FS,Failed
5001.abc.com,G:System,CWT_FS,Success
5001.abc.com,H:System,CWT_FS,Failed

期望的输出

Client Name Save Set Name   Group            Status
SQL01.abc.com   MSSQL       D_CWT_SQL_FULL    Failed
SQL01.abc.com   MSSQL:model D_CWT_SQL_FULL    Failed
SQL01.abc.com   MSSQL:msdb  D_CWT_SQL_FULL    Failed
SQL01.abc.com   MSSQL:masterSQL_T-Log_15Mins  Failed
5001.abc.com    H:System   CWT_FS            Failed

我想将所有客户端输出到失败的特定组。 我尝试过滤掉带有状态和存储集的列,但在这种情况下,我没有获得在一个组中失败而在其他组中成功的客户端。

你的逻辑有问题,如果每组的状态=成功之和为零,你想保留它。

Get-Content .Daily_Failed.csv |
ConvertFrom-Csv |
Select-Object -Unique * |
Group-Object -Property 'Client Name','Save Set Name','Group' | 
Where-Object {0 -eq ($_.Group|Where-Object Status -eq 'Success').Count} |
Select-Object -Expand Group |
Select-Object "Client Name", "Save Set Name", "status", "Group"

只是没有导出,这会产生:

Client Name   Save Set Name Status Group
-----------   ------------- ------ -----
SQL01.abc.com MSSQL         Failed D_CWT_SQL_FULL
SQL01.abc.com MSSQL:model   Failed D_CWT_SQL_FULL
SQL01.abc.com MSSQL:msdb    Failed D_CWT_SQL_FULL
SQL01.abc.com MSSQL:master  Failed SQL_T-Log_15Mins
5001.abc.com  H:System     Failed CWT_FS

最新更新