bestimmten Text per Batch aus txt auslesen
Hallo zusammen,
ich werkle nun schon seit geraumer Zeit an folgendem Problem:
Ich habe hier ein Programm (Mobile Master), welches SMS von einer externen Firma (mit Fehlermeldungen als Inhalt) am PC empfängt.
Das Programm gibt mir die SMS als Text-Datei mit einer einzigen Zeile aus:
+49123456789 13.06.2006, 17:11:14 Hier steht der Text der SMS 040D91945122611298F900006060317111418004D4F29C0E
Diese leite ich per Email weiter. Soweit sogut.
Nun ist bei dem Programm ein kleines Kommandozeilen-Tool dabei, mit dem man einfache SMS mit folgendem Aufruf verschicken kann.
sms.exe +49123456789 hier kommt der Text hin der verschickt werden soll
Das Problem ist nun, dass die Komplette Verarbeitung in einer Batch-Datei steht und ich nun die eine Zeile aus der vom Mobile Master generierten Textdatei irgendwie in eine Variable bekommen muss.
Da ich mich mit Batch-Programmierung nicht so gut auskenne, bin ich mit etwas rumbasteln zu einer doch recht unschönen Lösung gekommen:
rem Einlesen der smsrec.txt bis maximal 27 Wörter
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27" %%a in
(smsrec.txt) do set sms-text=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z
call "c:\programme\mobile master\sms.exe" +491753621319 %sms-text%
Es funktioniert zwar einwandfrei (bis auf Umlaute), allerdings weiss ich nicht, ob es
1. nicht irgendwie einfacher geht
und ob es
2. möglich ist, die letzte lange Zahlenfolge der SMS/Textdatei irgendwie rauszuwerfen
Vielleicht kann mir einer weiterhelfen ?
Grüße,
Jochgeier
ich werkle nun schon seit geraumer Zeit an folgendem Problem:
Ich habe hier ein Programm (Mobile Master), welches SMS von einer externen Firma (mit Fehlermeldungen als Inhalt) am PC empfängt.
Das Programm gibt mir die SMS als Text-Datei mit einer einzigen Zeile aus:
+49123456789 13.06.2006, 17:11:14 Hier steht der Text der SMS 040D91945122611298F900006060317111418004D4F29C0E
Diese leite ich per Email weiter. Soweit sogut.
Nun ist bei dem Programm ein kleines Kommandozeilen-Tool dabei, mit dem man einfache SMS mit folgendem Aufruf verschicken kann.
sms.exe +49123456789 hier kommt der Text hin der verschickt werden soll
Das Problem ist nun, dass die Komplette Verarbeitung in einer Batch-Datei steht und ich nun die eine Zeile aus der vom Mobile Master generierten Textdatei irgendwie in eine Variable bekommen muss.
Da ich mich mit Batch-Programmierung nicht so gut auskenne, bin ich mit etwas rumbasteln zu einer doch recht unschönen Lösung gekommen:
rem Einlesen der smsrec.txt bis maximal 27 Wörter
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27" %%a in
(smsrec.txt) do set sms-text=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z
call "c:\programme\mobile master\sms.exe" +491753621319 %sms-text%
Es funktioniert zwar einwandfrei (bis auf Umlaute), allerdings weiss ich nicht, ob es
1. nicht irgendwie einfacher geht
und ob es
2. möglich ist, die letzte lange Zahlenfolge der SMS/Textdatei irgendwie rauszuwerfen
Vielleicht kann mir einer weiterhelfen ?
Grüße,
Jochgeier
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 34150
Url: https://administrator.de/contentid/34150
Ausgedruckt am: 26.11.2024 um 00:11 Uhr
4 Kommentare
Neuester Kommentar
Moin Jochgeier,
sorry, hab Deinen Beitrag heute erst gefunden. Peinlich.
Also, ein bisschen einfacher geht es schon...erstens formal:
..noch simpler ist es, wenn Du einfach die ganze Zeile as is nimmst, also behauptest, es gibt gar keine Trennzeichen. Die Klausel dazu ist "Delims="
-oder etwas kürzer-
-oder alternativ-
Hoffe, Du hast keinen so schlechten Eindruck wegen der langen Wartezeit - oft geht es schneller. Sorry.
Biber,
schuldbewusster Mod in diesem Bereich
sorry, hab Deinen Beitrag heute erst gefunden. Peinlich.
Also, ein bisschen einfacher geht es schon...erstens formal:
rem Einlesen der smsrec.txt bis maximal 27 Wörter
for /f "tokens=1-27" %%a in (smsrec.txt) do set sms-text=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z
call "c:\programme\mobile master\sms.exe" +491753621319 %sms-text%
..noch simpler ist es, wenn Du einfach die ganze Zeile as is nimmst, also behauptest, es gibt gar keine Trennzeichen. Die Klausel dazu ist "Delims="
rem Einlesen der smsrec.txt as is
for /f "delims=" %%a in (smsrec.txt) do set "sms-text=%%a"
call "c:\programme\mobile master\sms.exe" +491753621319 %sms-text%
rem Einlesen der smsrec.txt as is
for /f "delims=" %%a in (smsrec.txt) do call "c:\programme\mobile master\sms.exe" +491753621319 %%a
rem Einlesen der smsrec.txt as is
Set /P sms-text=<smsrec.txt
call "c:\programme\mobile master\sms.exe" +491753621319 %sms-text%
Hoffe, Du hast keinen so schlechten Eindruck wegen der langen Wartezeit - oft geht es schneller. Sorry.
Biber,
schuldbewusster Mod in diesem Bereich
Danke für die Rückmeldung, Jochgeier,
ich setze den Thread auf "Gelöst" und "Geschlossen".
Schönen Tag noch
Biber
P.S. Falls irgendwann einmal doch Umlaute konnen sollten und "falsch" übersetzt werden:
Das liegt dann daran, das Windows defaultmäßig die Codepage 1252 benutzt und die CMD.exe die Codepage 850. Weil...M$...*seufz*.
Du kannst dazu am Anfang des Bätches den Befehl "CHCP 1252" abfeuern..dann sollte auch das gehen. Findest aber auch Beispiele dazu über die Forumssuche.
P.P.S. Das Füllwort "Call" oben in den beiden Beispiele ist überflüssig (bei einem *.exe-Aufruf), stört aber auch nicht weiter.
ich setze den Thread auf "Gelöst" und "Geschlossen".
Schönen Tag noch
Biber
P.S. Falls irgendwann einmal doch Umlaute konnen sollten und "falsch" übersetzt werden:
Das liegt dann daran, das Windows defaultmäßig die Codepage 1252 benutzt und die CMD.exe die Codepage 850. Weil...M$...*seufz*.
Du kannst dazu am Anfang des Bätches den Befehl "CHCP 1252" abfeuern..dann sollte auch das gehen. Findest aber auch Beispiele dazu über die Forumssuche.
P.P.S. Das Füllwort "Call" oben in den beiden Beispiele ist überflüssig (bei einem *.exe-Aufruf), stört aber auch nicht weiter.