Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Batch & Shell

SMS Versand per CMD Line, Nummer und Text aus txt auslesen

Mitglied: kunzibus

kunzibus (Level 1) - Jetzt verbinden

16.07.2013 um 10:38 Uhr, 2967 Aufrufe, 14 Kommentare, 3 Danke

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
Mitglied: colinardo
16.07.2013, aktualisiert um 13:14 Uhr
Hallo kunzibus,
könnte z.B. so aussehen:
(Script in den Ordner kopieren wo die sms.txt liegt..)
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set "file=sms.txt" 
03.
set /p raw_sms=<%file% 
04.
if not exist "%~dp0gesendet" md "%~dp0gesendet" 
05.
 
06.
for /f "tokens=1,2* delims=^|" %%f IN ("%raw_sms%") DO @( 
07.
	set number=%%f & set number=!number: =! 
08.
	set text=%%g 
09.
	set sms_1=!text:~1,160! 
10.
	set sms_2=!text:~160! 
11.
	echo Sende SMS 1 an !number! 
12.
	"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!" 
13.
	echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt" 
14.
 
15.
	if "!sms_2!" neq "" ( 
16.
		echo Sende SMS 2 an !number! 
17.
		"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!" 
18.
		echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt" 
19.
 
20.
21.
 
22.
)
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
Bitte warten ..
Mitglied: kunzibus
16.07.2013, aktualisiert um 13:01 Uhr
Hi Uwe

Vielen vielen Dank für dein Script. Leider hat es irgendwo noch einen kleinen Bug. Den es zeigt nur folgendes an


Sende SMS an +436648352533
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Numme
r +4366483521234 -Message "01.07.2013"

Sende SMS an +436648352533
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Numme
r +436648351234 -Message "Tombola"

Ende





Wo wurde hier der rest unterschlagen.

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.

Vielen Dank nochmals im voraus.

mfg

kunzibus
Bitte warten ..
Mitglied: colinardo
16.07.2013, aktualisiert um 13:13 Uhr
Zitat von kunzibus:
Wo wurde hier der rest unterschlagen.
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.

01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set "file=sms.txt" 
03.
set /p raw_sms=<%file% 
04.
if not exist "%~dp0gesendet" md "%~dp0gesendet" 
05.
 
06.
for /f "tokens=1,2* delims=^|" %%f IN ("%raw_sms%") DO @( 
07.
	set number=%%f & set number=!number: =! 
08.
	set text=%%g 
09.
	set sms_1=!text:~1,160! 
10.
	set sms_2=!text:~160! 
11.
	echo Sende SMS 1 an !number! 
12.
	"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!" 
13.
	echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt" 
14.
 
15.
	if "!sms_2!" neq "" ( 
16.
		echo Sende SMS 2 an !number! 
17.
		"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!" 
18.
		echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt" 
19.
 
20.
21.
 
22.
)
Bitte warten ..
Mitglied: kunzibus
16.07.2013 um 13:18 Uhr
Wahnsinn wie schnell das hier ging. Vielen vielen dank. Ich hätte das nie zusammen gebracht. Danke nochmals.

Schöne Grüße aus Österreich
Bitte warten ..
Mitglied: colinardo
16.07.2013 um 13:21 Uhr
Zitat von kunzibus:
Keine Ursache, gern geschehen.
p.s. in den Bergen wäre ich jetzt auch lieber zum Gleitschirmfliegen

Grüße Uwe
gelöste Beitrage bitte auch als solche markieren.Danke
Bitte warten ..
Mitglied: kunzibus
16.07.2013 um 13:41 Uhr
Verdammt eine sache wäre noch. Das ERP programm hat jetzt mehrere Zeilen (sms) erstellt. Leider hat die send.cmd nur die erste zeile genommen. Somit sind die anderen SMS nicht versendet worden.

Ist es viel Aufwand das ganze pro Zeile auszuführen. ich kann die send.cmd nur 1 pro minute mit scheduled task ausführen.

Mfg

kunzibus
Bitte warten ..
Mitglied: colinardo
16.07.2013 um 13:46 Uhr
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
if not exist "%~dp0gesendet" md "%~dp0gesendet" 
03.
 
04.
for /f "tokens=1,2* delims=^|" %%f IN ('type sms.txt') DO @( 
05.
	set number=%%f & set number=!number: =! 
06.
	set text=%%g 
07.
	set sms_1=!text:~1,160! 
08.
	set sms_2=!text:~160! 
09.
	echo Sende SMS an !number! 
10.
	echo "c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!" 
11.
	echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt" 
12.
 
13.
	if "!sms_2!" neq "" ( 
14.
		echo Sende SMS an !number! 
15.
		echo "c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!" 
16.
		echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt" 
17.
 
18.
19.
 
20.
)
Bitte warten ..
Mitglied: kunzibus
16.07.2013 um 14:12 Uhr
Nochmals vielen Dank. Funktioniert super
Bitte warten ..
Mitglied: kunzibus
23.07.2013 um 10:40 Uhr
Hi Colinardo

Leider habe ich noch ein Problem. Bei manchen Kunden sind / zw. der Vorwahl und der Nummer eingegeben. Leider werde die Sms jetzt nicht versandt.

Wie kann man die Batchdatei dazu bringen die / oder () zu ignorieren.

0664/123456789 | 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


Vielen Dank im voraus
Bitte warten ..
Mitglied: colinardo
23.07.2013, aktualisiert um 10:58 Uhr
Hi kunzibus,
hiermit werden folgende Zeichen aus der Telefonnummer gefiltert:
( ) / -
Leerzeichen waren ja vorher schon ausgefiltert:
01.
setlocal ENABLEDELAYEDEXPANSION 
02.
if not exist "%~dp0gesendet" md "%~dp0gesendet" 
03.
 
04.
for /f "tokens=1,2* delims=^|" %%f IN ('type sms.txt') DO @( 
05.
	set number=%%f 
06.
	set number=!number: =! 
07.
	set number=!number:^(=! 
08.
	set number=!number:^)=! 
09.
	set number=!number:/=! 
10.
	set number=!number:-=! 
11.
 
12.
	set text=%%g 
13.
	set sms_1=!text:~1,160! 
14.
	set sms_2=!text:~160! 
15.
	echo Sende SMS an !number! 
16.
	"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!" 
17.
	echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt" 
18.
 
19.
	if "!sms_2!" neq "" ( 
20.
		echo Sende SMS an !number! 
21.
		"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!" 
22.
		echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt" 
23.
 
24.
25.
 
26.
)
Grüße Uwe
Bitte warten ..
Mitglied: kunzibus
23.07.2013 um 16:06 Uhr
Perfekt. Jetzt hab ich nur noch das problem das nun keine Zeilen mehr geschrieben werden. Sondern pro SMS eine eigene Datei in Form von smsxxxxx.txt erzeugt wird. (als sms5stelligenummer.txt)

Mithilfe des * hier lest er die dateien nun ein,

for /f "tokens=1,2* delims=^|" %%f IN ('type *.txt') DO @(

Wie kann ich jetzt nur die eine gerade eingelesene Datei löschen. Mit del c:\cmdsms\senden\*.txt räumt er mir ja alles aus,

Danke im voraus. Ich denke jetzt habe ich es dann wirklich.


Mfg


kunzibus
Bitte warten ..
Mitglied: colinardo
23.07.2013, aktualisiert 24.07.2013
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
if not exist "%~dp0gesendet" md "%~dp0gesendet" 
03.
set "sendeordner=%~dp0" 
04.
for /f "tokens=* delims=" %%m IN ('dir /b /A-D "!sendeordner!sms*.txt"') DO @( 
05.
for /f "usebackq tokens=1,2* delims=^|" %%f IN ("!sendeordner!%%m") DO @( 
06.
	set number=%%f 
07.
	set number=!number: =! 
08.
	set number=!number:^(=! 
09.
	set number=!number:^)=! 
10.
	set number=!number:/=! 
11.
	set number=!number:-=! 
12.
 
13.
	set text=%%g 
14.
	set sms_1=!text:~1,160! 
15.
	set sms_2=!text:~160! 
16.
	echo Sende SMS an !number! 
17.
	"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_1!" 
18.
	echo !sms_1! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms1.txt" 
19.
 
20.
	if "!sms_2!" neq "" ( 
21.
		echo Sende SMS an !number! 
22.
		"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Nummer !number! -Message "!sms_2!" 
23.
		echo !sms_2! >"%~dp0gesendet\!number!_%date%%time:~0,2%%time:~3,2%%time:~6,2%_sms2.txt" 
24.
 
25.
26.
 
27.
28.
del /q "!sendeordner!%%m" 
29.
)
Bitte warten ..
Mitglied: kunzibus
23.07.2013 um 20:28 Uhr
Sorry aber irgendwie geht mit der Datei jetzt nix mehr. Er zeigt mir folgendes an.

C:\Users\administrator.VITA>C:\cmdsms\senden\send.cmd

C:\Users\administrator.VITA>setlocal ENABLEDELAYEDEXPANSION

C:\Users\administrator.VITA>if not exist "C:\cmdsms\senden\gesendet" md "C:\
cmdsms\senden\gesendet"

C:\Users\administrator.VITA>set "sendeordner=C:\cmdsms\senden\senden"

C:\Users\administrator.VITA>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 -Numm
er !number! -Message "!sms_1!"
echo !sms_1! 1>"C:\cmdsms\senden\gesendet\!number!_23.07.2013202554_sms1.txt"

if "!sms_2!" NEQ "" (
echo Sende SMS an !number!
"c:\cmdsms\cmdsms.exe" -Comport COM3 -Baudrate 9600 -SMSSC +4365009000000 -Numm
er !number! -Message "!sms_2!"
echo !sms_2! 1>"C:\cmdsms\senden\gesendet\!number!_23.07.2013202554_sms2.txt"

)
)
del /q "!sendeordner!\%m"
)
Das System kann die angegebene Datei nicht finden.

C:\Users\administrator.VITA>

Danke für die hilfe
Bitte warten ..
Mitglied: colinardo
24.07.2013, aktualisiert um 08:04 Uhr
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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PUTTY BATCH zum Auslesen von SMS
Frage von bertram99Batch & Shell4 Kommentare

Hallo, ich möchte unter Windows7 von einem USB-Stick (Fonic Surf Stick) eingegangene SMS auslesen und auf dem PC speichern. ...

Batch & Shell
Text-Begriff-Nummer in Datei suchen und bestimmte Zeile auslesen
Frage von chgs2011Batch & Shell13 Kommentare

Hallo, ich suche eine Möglichkeit, eine Datei nach einem Text/Begriff/Nummer zu durchsuchen, um mir dann eine bestimme Zeile auslesen ...

Debian
SMS-Versand über Raspberry PI - UMTS-Stick wird nicht erkannt??
gelöst Frage von thaddaeus93Debian5 Kommentare

Hallo zusammen, ich habe folgende Ausgangssituation: - SMS-Versand soll über einen RaspberryPI und dem angeschlossenen UMTS-Stick erfolgen - Vorhanden ...

Batch & Shell
SMS versenden über CMD (Speedstick LTE V am Server)
gelöst Frage von Kopfg3ldBatch & Shell6 Kommentare

Hallo zusammen, hat jemand schön mal über den Speedstick LTE V von der Telekom über einen CMD Befehl eine ...

Neue Wissensbeiträge
Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 3 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 8 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement21 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...