Select-string zeilenweise in einzelne variablen
Hallo zusammen,
wie bekomme ich einen String welcher mehrere Zeilen beinhaltet, Zeilenweise in einzelne Variablen geschrieben?
test1.txt
test2.txt
test3.txt
mit diesem Befehl bekomme ich meine Suche in eine Variable mit mehreren Zeilen. Jedoch benötige ich die Zeilen in einzelne Variablen damit ich das Ergebnis weiter verarbeiten kann. Komme hier irgendwie nicht weiter? Und woher weiß ich in welcher Datei das Ergebnis gefunden wurde? Kann ich dies in eine separate Variable schreiben lassen?
wie bekomme ich einen String welcher mehrere Zeilen beinhaltet, Zeilenweise in einzelne Variablen geschrieben?
test1.txt
test2.txt
test3.txt
$var = select-string -path $folder\*.txt -AllMatches "suche Text" | select Line | ft -HideTableHeaders
mit diesem Befehl bekomme ich meine Suche in eine Variable mit mehreren Zeilen. Jedoch benötige ich die Zeilen in einzelne Variablen damit ich das Ergebnis weiter verarbeiten kann. Komme hier irgendwie nicht weiter? Und woher weiß ich in welcher Datei das Ergebnis gefunden wurde? Kann ich dies in eine separate Variable schreiben lassen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 360731
Url: https://administrator.de/forum/select-string-zeilenweise-in-einzelne-variablen-360731.html
Ausgedruckt am: 09.04.2025 um 23:04 Uhr
4 Kommentare
Neuester Kommentar
Servus again,
hier nicht mit format CMDLets arbeiten, du bekommst ja schon ein sauberes Array geliefert!
Wenn du also alle Zeilen geliefert haben willst in denen dein String steht
Über das Array kannst du auch problemlos eine Schleife bauen. du musst nicht extra Variablen zuweisen das ist in Powershell meist immer überflüssig.
Grüße Uwe
hier nicht mit format CMDLets arbeiten, du bekommst ja schon ein sauberes Array geliefert!
Wenn du also alle Zeilen geliefert haben willst in denen dein String steht
$var = select-string -Path "$folder\*.txt" -Pattern "suche Text" -SimpleMatch -AllMatches | select -Expand Line
# erstes Ergebnis
$var
# zweites Ergbnis
$var[1]
# usw.
$var | %{
write-host $_
}
Dann machst du es einfach so
Denke immer daran. Powershell ist Objektorientiert. Select-String liefert dir ein Array aus Objekten dessen Eigenschaften du entweder über eine Schleife abrufen kannst oder den Array-Index direkt ansprichst. Es geht also auch so
Aber bei dieser Method musst du natürlich erst mal checken ob das Array überhaupt Inhalt hat.
$var = select-string -Path "$folder\*.txt" -Pattern "suche Text" -SimpleMatch -AllMatches
$var | %{
"Gefunden in: '$($_.Filename)'"
write-host "Inhalt:"
write-host $_.Line
}
$var = select-string -Path "$folder\*.txt" -Pattern "suche Text" -SimpleMatch -AllMatches
$var.Filename
$var.Line
#usw.