按属性过滤数据

时间:2020-06-04 06:19:09

标签: powershell filter

我正在寻找一种在Powershell中过滤csv中条目的解决方案

我的文件看起来像这样

Header1;Header2;Header3
Tom;15;15.12.2008
Anna;17;
Tim;18;12.01.2007

我的代码看起来像这样:

$altdaten = Get-Content -Path $altdatenpf | Select-Object  -skip 1 |`
            ConvertFrom-Csv  `
                -Delimiter ";"`
                -Header $categoriesCSV

$neudaten = Get-Content -Path $neudatenpf | Select-Object  -skip 1 |`
            ConvertFrom-Csv  `
                -Delimiter ";"`
                -Header $categoriesCSV








$zdaten = foreach ($user in $neudaten)
{
    Where-Object $user.Austrittsdatum -EQ ''
}

$zdaten | export-Csv -Path '.\Test\zwischendaten.csv'

在这种情况下,我要删除所有与tim和Tom类似的条目,它们在header3中都有条目

提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

$altdaten = Get-Content -Path .\pathToCsvFile.csv | ConvertFrom-Csv -Delimiter ';'

$zdaten = $altdaten | Where-Object { $_.Header3 -eq $null }

您的相等运算符实际上检查一个空字符串。但是,在您的CSV文件中,没有任何内容。因此,您需要检查$null

或者,如果不确定,可以使用:

$zdaten = $altdaten | Where-Object { [string]::IsNullOrEmpty($_.Header3) }

这涵盖了任何一个选项,并且看上去也很有吸引力(至少对我而言)。

相关问题