2016-07-07 33 views
1

私はcsvファイルで強く働くスクリプトを手に入れました。これらのファイルには、異なる種類のデータが格納されています。ある時点で、そのようなファイルからエントリを削除したいと思います。PowerShell:csvファイルから複数のエントリを削除

私はこのようにそれを行う単一のエントリを削除する:

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

非常に安定したこのアプローチの作品が、私はもうシングルからの複数、次の行のdoesntの仕事にパラメータ-OutputModeを変更した場合:

$csv = $csv -notmatch $selectedEntry 

どうしてですか? csvファイルから複数のエントリを削除するにはどうすればよいですか?

+0

'$ selectedEntry'と' $ item'は同じ変数であるはずですか? –

+0

申し訳ありませんが、 '$ item'は' $ selectedEntry'とされています。私は質問でそれを編集しました。早速の対応、ありがとうございました!演算子NotContainsは完璧に動作します。 –

答えて

0

これは配列の相違Where-Object節で行うことができます。

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

$csvアレイの各要素に対するこの反復、およびのみ$selectedEntryアレイに含まれていないものを生成します。

関連する問題