Gibt es eine „Zeichenfolge enthält keine“ Powershell-Cmdlets oder Syntax?

StackOverflow https://stackoverflow.com/questions/74957

  •  09-06-2019
  •  | 
  •  

Frage

In Powershell ich in einer Textdatei bin zu lesen. Ich bin dann eine Foreach-Object über die Textdatei zu tun und bin daran interessiert sind nur in den Zeilen, die Strings nicht enthalten, die in $arrayOfStringsNotInterestedIn sind.

Was ist die Syntax für das?

   Get-Content $filename | Foreach-Object {$_}
War es hilfreich?

Lösung

Wenn $ arrayofStringsNotInterestedIn ist ein [Array] sollten Sie -notcontains:

Get-Content $FileName | foreach-object { `
   if ($arrayofStringsNotInterestedIn -notcontains $_) { $) }

oder besser (IMO)

Get-Content $FileName | where { $arrayofStringsNotInterestedIn -notcontains $_}

Andere Tipps

Sie können den -notmatch Operator verwenden, um die Zeilen, die Sie in interessiert sind, nicht die Zeichen haben.

     Get-Content $FileName | foreach-object { 
     if ($_ -notmatch $arrayofStringsNotInterestedIn) { $) }

Um die Linien auszuschließen, dass jede der Saiten in $ arrayOfStringsNotInterestedIn enthält, sollten Sie verwenden:

(Get-Content $FileName) -notmatch [String]::Join('|',$arrayofStringsNotInterestedIn)

Der Code von Chris vorgeschlagen funktioniert nur, wenn $ arrayofStringsNotInterestedIn die vollen Linien enthält, die Sie ausschließen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top