Powershell - Textdatei einlesen und die ersten 5 Zeichen jeder Zeile durchsuchen
Hallo,
ich habe folgendes Problem:
Ich möchte mit Powershell eine Textdatei auslesen und eine bestimmte Zeile ausgeben lassen.
Soweit habe ich das hin bekommen, jedoch wurde mir heute ein Fehler aufgezeigt, den ich so nicht bedacht habe.
Vorab einmal das derzeitige Script und die Textdatei:
Inhalt der Textdatei:
Das Script hat funktioniert, bis die Zeile "omg;C:\rofl.txt" dazu gekommen ist... Nun findet es bei der suche nach "rofl" dementschrechend 2 Ergebnisse, ich möchte aber eigentlich nur die Zeile "rofl;C:\rol.bat" finden.
Deshalb suche ich nach einer Möglichkeit entweder nur die ersten 5 Zeichen jeder Zeile zu durchsuchen, oder falls möglich bis zum Semikolon.
Am Ende sollte wie bisher als Ergebniss z.B. "C:\rol.bat" ausgegeben werden.
Danke vorab für eure Bemühungen
Grüße
Mirko
ich habe folgendes Problem:
Ich möchte mit Powershell eine Textdatei auslesen und eine bestimmte Zeile ausgeben lassen.
Soweit habe ich das hin bekommen, jedoch wurde mir heute ein Fehler aufgezeigt, den ich so nicht bedacht habe.
Vorab einmal das derzeitige Script und die Textdatei:
##################################################################################
# Auslesen einer Textdatei und Ausgabe eines Strings durch Eingabe eines Kürzels #
# Beispielformatierung der Text-Datei: #
# rofl;C:\rofl.bat #
##################################################################################
#Eingabeaufforderung für das Kürzel (z.B. rofl)
$datei = Read-Host "Gesuchte Datei?: "
#Einlesen der Datei und rausfiltern der gesuchten Zeile, die das Kürzel enthält
$datgefunden = Get-Content .\test.txt | Select-String $datei
#Aufspliten des Strings und entfernen des Kürzels
$datgeaendert = $datgefunden.ToString().Split(';')[1].Trim()
#Ausgabe des Pfades
Write-Host " "
Write-Host $datgeaendert
Write-Host " "
Inhalt der Textdatei:
omg;C:\rofl.txt
rofl;C:\rol.bat
lol;C:\Dokumente und Einstellungen\dummy\lol.exe
fu;D:\Programme\fu.txt
cfg;C:\WINDOWS\system32\test.cfg
Das Script hat funktioniert, bis die Zeile "omg;C:\rofl.txt" dazu gekommen ist... Nun findet es bei der suche nach "rofl" dementschrechend 2 Ergebnisse, ich möchte aber eigentlich nur die Zeile "rofl;C:\rol.bat" finden.
Deshalb suche ich nach einer Möglichkeit entweder nur die ersten 5 Zeichen jeder Zeile zu durchsuchen, oder falls möglich bis zum Semikolon.
Am Ende sollte wie bisher als Ergebniss z.B. "C:\rol.bat" ausgegeben werden.
Danke vorab für eure Bemühungen
Grüße
Mirko
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 177869
Url: https://administrator.de/forum/powershell-textdatei-einlesen-und-die-ersten-5-zeichen-jeder-zeile-durchsuchen-177869.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
3 Kommentare
Neuester Kommentar
Hi,
die ersten 5 Zeichen müssten mit ".Substring(5)" abzufragen sein. http://technet.microsoft.com/en-us/library/ee692804.aspx
Aus dem Bauch heraus ohne es getestet zu haben, würde ich das Select-String hinter die Aufsplittung setzen, da müsste genügen.
Grüße
die ersten 5 Zeichen müssten mit ".Substring(5)" abzufragen sein. http://technet.microsoft.com/en-us/library/ee692804.aspx
Aus dem Bauch heraus ohne es getestet zu haben, würde ich das Select-String hinter die Aufsplittung setzen, da müsste genügen.
Grüße