Hallo, wie kann ich aus einer Textdatei über batch ein Wort suchen lassen und ein anderes was in der gleichen Zeile in Klammern steht ausgeben lassen ?
meine Textdatei ist in etwa so aufgebaut:
Vorname1 (Nachname1) Dienstag bla bla bla
Vorname2 (Nachname2) Monatg bla bla bla
Vorname3 (Nachname3) Donnerstag bla bla bla
Ich würde gerne nach "Montag" suchen und als ausgabe Nachname2 bekommen,
Danke schonmal im vorraus
2 Antworten
Für so was einfaches brauchst du kein powershell oder gar C, du solltest Montag aber schon richtig schreiben, hab n paar Anläufe gebraucht bis ich den Fehler nicht in meinem Code sondern in der txt gefunden hab ;D
Also hier mein kleines Programm: ( habe die textdatei t.txt genannt, einfach deinen Namen dafür eintragen. Der output steht in der Variable string. )
@echo off color f0 set "sucheNach=Montag" set "datei=t.txt" for /f "tokens=2 delims=(" %%i in ('findstr /c:"%sucheNach%" %datei%') do ( set "string=%%i" ) for /f "tokens=1 delims=)" %%j in ("%string%") do ( set "string=%%j" ) echo %string% pause >nul
LG Tim
Nur aus Neugier: Reden wir über Batch oder Powershell?
Vergiss es einfach. Batch ist kein Textprozessor.
Batch schafft es locker ein paar Zeilen Text zu verarbeiten und das sogar übersichtlicher als in anderen Programmiersprachen.
Batch und über findstr sollte das eigentlich auch gehen wie Roderic oben schreibt, blicke da aber bei den ganzen sachen leider nicht so durch .Ausweichen auf eine andere prog. Spache ist leider nicht möglich, da der code einer anderen batch datei angefügt werden soll
Ja ok, mit find oder findstr laesst sich die betreffende Zeile anzeigen. Das sollte in der Praxis komfortabel genug sein.
find /i /n "montag" "meinedatei.txt"
bzw. mit Parameter
find /i /n %1 "meinedatei.txt"
findstr ist erst ab win7 enthalten und erlaubt auch die Suche mit regular Expressions (das ist hier aber nicht erforderlich)
Ausweichen auf eine andere Programmiersprache ist übrigens doch möglich, indem man eine in C geschriebene "Konsolen"-Exe in das Verzeichnis einspielt. Auch sollte die Nutzung von Powershell möglich sein. Der Aufwand ist natuerlich ungleich höher, wenn es sich um eine einmalige Aktion handelt.
Vielen dank, macht genau das was ich wollte