Powershell 从CSV中删除一行

Powershell 从CSV中删除一行,powershell,csv,Powershell,Csv,我有一个CSV,有几行和两列:名称和信息 我在CSV中循环并检查每一行的条件,如果满足条件,我想删除该行: for ($i=0; $i -le $CSV.length; $i++) { if ($CSV.name == "Fred") { #remove $CSV[$i] -- that one line; both "Name" and "Information" } } 我见过使用Get Content或Import Csv

我有一个CSV,有几行和两列:名称和信息

我在CSV中循环并检查每一行的条件,如果满足条件,我想删除该行:

for ($i=0; $i -le $CSV.length; $i++)
{            
    if ($CSV.name == "Fred")
    {
         #remove $CSV[$i] -- that one line; both "Name" and "Information"
    }
}
我见过使用Get Content或Import Csv和临时文件的解决方案,但我还没有完全理解它,我认为一定有一种更简单的方法


不管怎样,我们感谢您的帮助

我将使用Import-CSV cmdlet读取CSV,并使用Where-Object cmdlet筛选条目。最后,使用Export-CSV cmdlet写回CSV:


很好的方法,但是我担心这个答案会在文件YourPath.csv被完全读取之前覆盖它。它要么保存到新文件中,要么在写入之前读入变量。@Burt\u Harris你说得对。我将采用我的脚本。使用temp变量可以放松一些优雅。另一种使其成为一行的方法是将导入csv放在参数中,例如:导入csv。\test.csv | where Name-ne'Fred'|导出csv test.csv-NoTypeInformation
$csv = import-csv 'YourPath.csv'
$csv | Where Name -ne 'Fred' | Export-Csv 'YourPath.csv' -NoTypeInformation