Ich versuche, Zeilen aus einem CSV, die einen der Werte in einem Array enthalten, herauszufiltern.Verwenden von Arrays mit Where-Objekt zum Filtern mehrerer Zeichenfolgen aus einem csv
diesen Beitrag als Referenz: Use -notlike to filter out multiple strings in PowerShell
schaffte ich es mit diesem Format arbeiten zu lassen:
Import-Csv "$LocalPath\Stripped1Acct$abbrMonth$Year.csv" |
where {$_."SubmitterName" -notlike "*${Report2a}*"
-and $_."SubmitterName" -notlike "*${Report2b}*"
-and $_."SubmitterName" -notlike "*${Report2c}*"} |
Export-Csv "$LocalPath\Stripped2Acct$abbrMonth$Year.csv" -NoTypeInformation
Schließlich plane ich das Skript zu umschreiben, damit es die Ausschlussliste aus einem Text ziehen wird Datei, die von einem Endbenutzer generiert wird. Um das zu tun, muss ich auf Werte in einem Array zugreifen. Ich habe versucht, dass mit der folgenden Syntax zu tun, aber es hat nicht funktioniert wie beabsichtigt:
Import-Csv "$LocalPath\Stripped1Acct$abbrMonth$Year.csv" |
where {$_."SubmitterName" -notlike "*${Report2[0]}*"
-and $_."SubmitterName" -notlike "*${Report2[1]}*"
-and $_."SubmitterName" -notlike "*${Report2[2]}*"} |
Export-Csv "$LocalPath\Stripped2Acct$abbrMonth$Year.csv" -NoTypeInformation
Ich habe das Gefühl, es ist nur eine Syntax Problem, aber mit ihm um viel zu lange nach dem Spiel für, ich habe laufen aus Ideen. Ich habe das Gefühl, es ist ein Syntaxproblem
war das! Es funktioniert jetzt einwandfrei, danke! – fudge
Wenn die Elemente einfache Zeichenfolgen wären, die "-contains"/"-in" verwenden, würde das auch ohne den Overhead (und in einigen Fällen Kopfschmerzen) von Regex funktionieren. Perfekte Lösung unabhängig davon. – Matt
Angenommen, die Saite war natürlich keine Teiltöne. – Matt