Powershell Get-Content mit Where-Object
Habe ich eine Datei wie diese:
line one email1
line two email1
line three email2
line four email1
Wenn ich extrahieren möchte nur die Zeilen mit "email1", so mache ich das:
$text = Get-Content -Path $path | Where-Object { $_ -like *email1* }
$text ist jetzt ein array mit 3 Elementen mit diesen Zeilen, und ich Durchlaufen es so:
for ($i = 0; $i -lt $text.Length; $i++)
{
#do stuff here
}
Jedoch, wenn ich will, um die Zeilen mit "E-mail2".
$text = Get-Content -Path $path | Where-Object { $_ -like *email2* }
gibt einen string zurück, anstatt ein array mit einem element.
Und wenn ich Durchlaufen, er durchläuft jeden char in der Zeichenkette.
Wie kann ich es machen das ein array mit einem element und nicht als string?
InformationsquelleAutor Backwards_Dave | 2014-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um ein array immer, auch mit 1 (also nicht string) oder 0 (d.h. nicht
$null
) Elemente, verwenden Sie den operator@()
:InformationsquelleAutor Roman Kuzmin
Anstatt die
Length
Methode zu behandeln, ein einzelnes element-Anweisung, die als ein array, ich denke eine bessere Lösung wäre die Verwendung einerforeach
- Schleife statt einerfor
- Schleife für die Iteration:wird immer analysiert, die durch jedes element in
$text
, auch wenn es ein einzelnes element.Nein, wenn Sie
foreach
eine Zeichenfolge, die Schleife wird nur einmal ausgeführt, da ein string enthält nur ein einziges element (den string selbst). Die Anzahl der Zeichen hat nichts zu tun mit es.InformationsquelleAutor Kohlbrr
Arbeitete es aus.
Muss ich erklären, $text als Typ
[String[]]
.InformationsquelleAutor Backwards_Dave
Sie könnte auch die
Select-String
Cmdlet hat es bei mir auch mit nur einem Ergebnis in der Auswahl :%
ist ein alias fürforeach
so dass Sie wirklich nur angewiesen auf das, was @Kohlbrr sagte:foreach
oder%
arbeiten werden auf einem einzelnen string oder ein array sein.danke - gefunden, wo mithilfe von select-string mit einem regex zurückkehren würde, das Objekt-array, die ich brauchte!
InformationsquelleAutor Gruntzy