2017-08-30 1 views
-4

J'ai besoin de modifier le code de base pour prendre en charge le filtrage de plusieurs éléments dans le champ de résultats en fonction de différentes chaînes. Par exemple, j'ai besoin de filtrer tout ce qui ne suit pas un modèle de "Version is 2.x.x.x.x" ou "found" ou un nombre quelconque d'autres combinaisons.Limiter plusieurs éléments CSV à l'aide de PowerShell

$FileIn = '.\FileIn.Csv' 
$FileOut = '.\FileOut.Csv' 
$Keywords = '\sVersion is*', '\sFound\s' 
Foreach($keyword in $keywords){ 
(Get-Content $FileIn) -replace $keyword,'' | Set-Content $FileOut } 
+2

Désolé mais: Quelle est votre question? – Richard

+2

Votre question est imprécise. Que voulez-vous filtrer exactement? Utilisez simplement 'Import-Csv myinputfile.csv | Where-Object {$ _. Résultats -notmatch 'regexpattern'} '. –

+2

Avez-vous essayé quelque chose? Stack Overflow n'est pas un service d'écriture de code. Si vous avez quelque chose que vous avez essayé et qu'il a échoué ou fait des recherches sur ce sujet ou toute sorte de tentative ... alors c'est l'endroit pour vous. Si vous voulez que quelqu'un écrive du code pour vous alors vous devriez engager un développeur. – ArcSet

Répondre

0

Got it ..... Je suis sûr qu'il existe une version plus propre de mes expressions régulières, mais cela fonctionne.

$Keywords = '\sVersion\sis\s.{2,16}', '\sfound', '\sshould.{2,40}','\sfile' 
$Csv | ForEach-Object { 
ForEach($keyword in $Keywords){ 
$_.Results = $_.Results -replace $keyword,'' 
}} 
$Csv | Export-Csv $FileOut -NoTypeInformation