SMS Versand per CMD Line, Nummer und Text aus txt auslesen
Hallo liebe Community!
ich möchte einen Text der in txt files abgespeichert wird. Über sms versenden
Ich kann mit Hilfe von smscmd mit folgendem Befehl eine SMS generieren.
c:\cmdsms\cmdsms.exe -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer +43123456789 -Message "hier gehen insgesamt 160 zeichen rein"
So nun zur Aufgabenstellung:
Vom ERP System wird eine Datei sms.txt mit folgendem Inhalt generiert.
Inhalt sms.txt
0664123456789 | 01.07.2013; 18:30; VA: 12345; Mustermann Max; Mustergasse 12; 1234; Alm; 0123456789;0; 6 Pers: 1Clown, 2 Hunde: V-Control, Tombola ;0664/12345678 ; http://www.linkzurva.at/hugo123.php; geplant ist test ;Bitte mit text ausfüllen
Nun soll eine sendsms.cmd die nummer auslesen und dann die ersten 160 zeichen (ohne nummer) vom text in einer sms versenden. In einer zweiten sms soll die restlichen zeichen versendet werden.
Dann soll die sms.txt in sms_%date%%time% umbenannt werden und in den Ordner gesendet kopiert werden.
Meine Versuche poste ich jetzt gar nicht weil wenns ie hier jemand auskennt wahrscheinlich nur drüber lacht.
Ich würde mich voll freuen wenn mir jemand zeigen kann wie ich mit for die nummer und 160 zeichen auslesen kann und diese dann mit den variablen in den cmd befehl einbauen kann.
Mfg
kunzibus
Download smscmd
http://www.softpedia.com/get/Internet/Telephony-SMS-GSM/SMSCMD.shtml
ich möchte einen Text der in txt files abgespeichert wird. Über sms versenden
Ich kann mit Hilfe von smscmd mit folgendem Befehl eine SMS generieren.
c:\cmdsms\cmdsms.exe -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer +43123456789 -Message "hier gehen insgesamt 160 zeichen rein"
So nun zur Aufgabenstellung:
Vom ERP System wird eine Datei sms.txt mit folgendem Inhalt generiert.
Inhalt sms.txt
0664123456789 | 01.07.2013; 18:30; VA: 12345; Mustermann Max; Mustergasse 12; 1234; Alm; 0123456789;0; 6 Pers: 1Clown, 2 Hunde: V-Control, Tombola ;0664/12345678 ; http://www.linkzurva.at/hugo123.php; geplant ist test ;Bitte mit text ausfüllen
Nun soll eine sendsms.cmd die nummer auslesen und dann die ersten 160 zeichen (ohne nummer) vom text in einer sms versenden. In einer zweiten sms soll die restlichen zeichen versendet werden.
Dann soll die sms.txt in sms_%date%%time% umbenannt werden und in den Ordner gesendet kopiert werden.
Meine Versuche poste ich jetzt gar nicht weil wenns ie hier jemand auskennt wahrscheinlich nur drüber lacht.
Ich würde mich voll freuen wenn mir jemand zeigen kann wie ich mit for die nummer und 160 zeichen auslesen kann und diese dann mit den variablen in den cmd befehl einbauen kann.
Mfg
kunzibus
Download smscmd
http://www.softpedia.com/get/Internet/Telephony-SMS-GSM/SMSCMD.shtml
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 211601
Url: https://administrator.de/contentid/211601
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo kunzibus,
könnte z.B. so aussehen:
(Script in den Ordner kopieren wo die sms.txt liegt..)
Der Befehl zum versenden ist noch nicht scharf geschaltet sondern mit einem Echo versehen damit du sehen kannst wie die Sendebefehle dann endgültig aussehen würden.
Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
könnte z.B. so aussehen:
(Script in den Ordner kopieren wo die sms.txt liegt..)
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "file=sms.txt"
set /p raw_sms=<%file%
if not exist "%~dp0gesendet" md "%~dp0gesendet"
for /f "tokens=1,2* delims=^|" %%f IN ("%raw_sms%") DO @(
set number=%%f & set number=!number: =!
set text=%%g
set sms_1=!text:~1,160!
set sms_2=!text:~160!
echo Sende SMS 1 an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!"
echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt"
if "!sms_2!" neq "" (
echo Sende SMS 2 an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!"
echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt"
)
)
Der Befehl zum versenden ist noch nicht scharf geschaltet sondern mit einem Echo versehen damit du sehen kannst wie die Sendebefehle dann endgültig aussehen würden.
Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
Fehler von mir hab das abgeändert
Wäre es möglich in dem gesendet Ordner nicht nur das Textfile hinzuverschieben sondern eine art Quasi postausgang zu
generieren. Also das die textfiles abgelegt werden handynummer+datum+uhrzeit_sms1.txt (damit sie uniqe bleiben) und in der datei der text.
generieren. Also das die textfiles abgelegt werden handynummer+datum+uhrzeit_sms1.txt (damit sie uniqe bleiben) und in der datei der text.
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "file=sms.txt"
set /p raw_sms=<%file%
if not exist "%~dp0gesendet" md "%~dp0gesendet"
for /f "tokens=1,2* delims=^|" %%f IN ("%raw_sms%") DO @(
set number=%%f & set number=!number: =!
set text=%%g
set sms_1=!text:~1,160!
set sms_2=!text:~160!
echo Sende SMS 1 an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!"
echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt"
if "!sms_2!" neq "" (
echo Sende SMS 2 an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!"
echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt"
)
)
@echo off & setlocal ENABLEDELAYEDEXPANSION
if not exist "%~dp0gesendet" md "%~dp0gesendet"
for /f "tokens=1,2* delims=^|" %%f IN ('type sms.txt') DO @(
set number=%%f & set number=!number: =!
set text=%%g
set sms_1=!text:~1,160!
set sms_2=!text:~160!
echo Sende SMS an !number!
echo "c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!"
echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt"
if "!sms_2!" neq "" (
echo Sende SMS an !number!
echo "c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!"
echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt"
)
)
Hi kunzibus,
hiermit werden folgende Zeichen aus der Telefonnummer gefiltert:
Leerzeichen waren ja vorher schon ausgefiltert:
Grüße Uwe
hiermit werden folgende Zeichen aus der Telefonnummer gefiltert:
( ) / -
setlocal ENABLEDELAYEDEXPANSION
if not exist "%~dp0gesendet" md "%~dp0gesendet"
for /f "tokens=1,2* delims=^|" %%f IN ('type sms.txt') DO @(
set number=%%f
set number=!number: =!
set number=!number:^(=!
set number=!number:^)=!
set number=!number:/=!
set number=!number:-=!
set text=%%g
set sms_1=!text:~1,160!
set sms_2=!text:~160!
echo Sende SMS an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!"
echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt"
if "!sms_2!" neq "" (
echo Sende SMS an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!"
echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt"
)
)
Grüße Uwe
@echo off & setlocal ENABLEDELAYEDEXPANSION
if not exist "%~dp0gesendet" md "%~dp0gesendet"
set "sendeordner=%~dp0"
for /f "tokens=* delims=" %%m IN ('dir /b /A-D "!sendeordner!sms*.txt"') DO @(
for /f "usebackq tokens=1,2* delims=^|" %%f IN ("!sendeordner!%%m") DO @(
set number=%%f
set number=!number: =!
set number=!number:^(=!
set number=!number:^)=!
set number=!number:/=!
set number=!number:-=!
set text=%%g
set sms_1=!text:~1,160!
set sms_2=!text:~160!
echo Sende SMS an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!"
echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt"
if "!sms_2!" neq "" (
echo Sende SMS an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!"
echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt"
)
)
del /q "!sendeordner!%%m"
)
Sorry, da hatte mich deine Pfadangabe mit del ... irritiert.
Also die smsXXXXX.txt liegen dann am selben Ort wie die Batchdatei sehe ich das richtig ?
Habe es oben (in meinem letzten Kommentar) korrigiert ...
Bin Heute nur mit Smartphone unterwegs und kann's nicht testen, sollte jetzt aber so funktionieren.
Grüße Uwe
Also die smsXXXXX.txt liegen dann am selben Ort wie die Batchdatei sehe ich das richtig ?
Habe es oben (in meinem letzten Kommentar) korrigiert ...
Bin Heute nur mit Smartphone unterwegs und kann's nicht testen, sollte jetzt aber so funktionieren.
Grüße Uwe