簡體   English   中英

PowerShell:從csv文件中刪除多個entrys

[英]PowerShell: Delete multiple entrys from a csv file

我有一個與csv文件密切配合的腳本。 在這些文件中存儲不同類型的數據。 在某些時候,我想從這些文件中刪除entrys。

當我想刪除單個條目時,我這樣做:

$csv = Import-Csv -Path $path -Delimiter ";"
$selectedEntry = $csv | Out-GridView -Title $title -OutputMode Single
$csv = $csv -notmatch $selectedEntry
$csv | Export-Csv $path -NoTypeInformation -Delimiter ";"

這種方法非常穩定但如果我將參數-OutputMode從Single更改為Multiple,則以下行不再起作用:

$csv = $csv -notmatch $selectedEntry 

為什么會這樣? 如何從csv文件中刪除多個entrys?

您應該能夠使用數組差異Where-Object子句來執行此操作。

$selectedEntry = $csv | Out-GridView -Title $title -OutputMode Multiple
$filteredCsv = $csv | where { $selectedEntry -notcontains $_ }

這將迭代$csv數組的每個元素,並僅生成不在$selectedEntry數組中的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM