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 ?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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. 

Imperator2017 
Fragesteller
 23.03.2017, 14:22

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

0
nikolaiki  23.03.2017, 16:20
@Imperator2017

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) 

0
nikolaiki  23.03.2017, 16:32
@nikolaiki

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.

0
timlg07  23.03.2017, 17:06

Batch schafft es locker ein paar Zeilen Text zu verarbeiten und das sogar übersichtlicher als in anderen Programmiersprachen.

0