Hallo zusammen!
Ich habe folgendes Problem:
Wir haben in unserer Feuerwehr insgesamt 3 Schleifen.
Wir wollen nun auch eine Alarm-SMS verschicken.
Dazu wollte ich eine Batch-Datei schreiben, habe auch schon angefangen, aber leider funzt das ned so wie ich es will.
Hier mal meine Idee:
wenn 1.schleife ausgelöst--warten auf weitere schleifen, wenn keine weitere schleife, dann sms, wenn 2.schleife dann warten ob 3.schleife, wenn nicht dann sms, wenn 2.schleife nicht und 1. und 2. schleife dann auch sms.
Hab die Batch-Datei geschrieben, aber irgendwie verschickt er mir dann immer ne sms, wurscht was ausgelöst wurde. Ausgelöst wird die Batch über FMS32, welches wiederum eine Batch startet, die dann in einem Ordner die dateien "schleife1.txt" etc. erzeugt. Diese Dateien sollen geprüft werden und dann nach alarmierungsbild die sms verschicken, ohne vielen Schnickschack.
Kann mir evtl. jemand einen Tipp für die Entwicklung geben bzw einen Programmiertext, bei mir kann ne goto verknüpfung irgendwie nur auf externe Dateien zugreifen.
Oder hat vielleicht soetwas schon irgendjemand mal gemacht?
Wäre nett wenn ihr mir helfen könntet!
Frohe Weihnachten!
Gruß
Miles
24.12.2005, 11:24
felix000
Poste bitte mal deine Batchdatei.
24.12.2005, 13:50
Miles
Edit: Batch nicht mehr aktuell....
26.12.2005, 15:25
Miles
Was ist los?
Seid ihr alle so mit brennenden Christbäumen beschäftigt, oder ist meine Batch so falsch, das man dazu überhautp nichts sagen kann?
26.12.2005, 15:46
felix000
Sorry, ich hab den Threat übersehen.
Ich versteh die Zeile überhaupt nicht: :a="wait5
Ich hab sowas bei mir auch laufen ich poste es mal:
Code:
@echo off
CD C:\Funk\IBSS
FOR /F "usebackq tokens=1,2,3 delims=: " %%a IN ('%time%') DO set zeit=%%a:%%b
if exist temp.txt goto schreiben
echo Alarmierung %Zeit% - Schleifen:
rem Text in der SMS vor den Schleifen
echo %1,>>temp.txt
wait 120
rem Wartezeit in der die 3 Schleifen ausgelöst werden können
find "12345" temp.txt
if %ERRORLEVEL%==0 goto senden
find "12346" temp.txt
if %ERRORLEVEL%==0 goto senden
find "12347" temp.txt
if %ERRORLEVEL%==0 goto senden
:schreiben
echo %1,>>temp.txt
goto ende
:senden
IBSS.exe ... /F:temp.txt
goto loeschen
:loeschen
if exist temp.txt del temp.txt
:ende
26.12.2005, 17:08
Miles
Das :a=wait5 geht weiter bis zum nächsten Anführungszeichen, d.h. es beeinhaltet die IF-Abfrage auchnoch.
Hab da nochmal einige Fragen zu deiner Batch-Datei:
1. Wenn alle 3 Schleifen ausgelöst werden, werden dann auch 3 sms verschick, bei 2 Schleifen 2 etc.
2. if exist temp.txt goto schreiben
.....
echo Alarmierung %Zeit% - Schleifen:
rem Text in der SMS vor den Schleifen
echo %1,>>temp.txt
:schreiben
echo %1,>>temp.txt
goto ende
Warum lässt du einen Text zweimal in den SMS-Inhalt schreiben?
Wenn die Datei temp.txt existiert, was sie wohl tut wenn alarmiert wird, soll etwas in die Datei geschrieben werden und wenn die Schleifen kommen dann auch nochmal. Kannst du mir bitte den Sinn erklären, irgendwas musst du dir wohl dabei gedacht haben.
3. Die Zeile mit dem FOR /f ist nur für die Zeit zuständig, wie ich das gesehen habe, oder wird da auch no sonst was abgerufen??
4. Bei mir wird sobald die Zeile gefunden wurde hingeschrieben das das Ereignis wahr ist, aber es löst das Programm nicht aus. Habe den Programmpfad geändert, weil meiner anders ist!
Danke für deine Hilfe und für deine Batch Datei
Grüße
Miles
26.12.2005, 21:27
Miles
Edit: Batch nicht mehr aktuell!
26.12.2005, 22:45
felix000
Dann füg nach dem Programmstart ein 'goto ende' ein.
27.12.2005, 14:33
Miles
Danke, das haut jetzt hin!
Aber wie löse ich das Problem, das wenn ich auch nur eine Schleife alarmiere, immer alle Programme gestartet werden, ich will aber nur das bei 2 schleifen 2 Programme, bei 1 Schleife 1 Programm und bei 3 Schleifen 3 Programme gestartet weden bzw sms verschickt werden??
27.12.2005, 14:49
felix000
Poste nochmal deine Batch.
27.12.2005, 14:59
Miles
Mein momentaner Stand is die die ich oben gepostet habe. Das ist ja im großen und ganzen deine, die nur ein wenig an meine Verhältnisse angepasst habe. Statt den Programmen bei send1, send2,send3 wird nun eine batch gestartet, die das SMS-Tool steuert. So läuft sie wunderbar, nur das oben geschilderte Problem lässt sich mir nicht erklären. Schau dir doch mal die Fragen an, die ich dir oben gestellt habe, villeicht liegt darin ja der Fehler, weil ich davon einen Teil einfach rausgelöscht habe, weil ich dachte das sei für mich irrelevant. Trotzdem super idee, mit dem suchen der Schleifen in der Textdatei!! Darin liegt m.E. auch irgendwo der Fehler! Finde ihn nur leider ned! :-(
Danke!
Miles
27.12.2005, 15:23
felix000
Ich würde es trennen, eine Batch für die SMS und eine andere für die Progamme, die gestartet werden sollen.
Allein schon wegen der Wartezeit in der SMS-Batch.
27.12.2005, 16:07
Miles
Die Programme laufen eh nur zum testen. Es soll dann ja das SMS- TOOL ausgelöst werden.
Warum starten alle Programme auch wenn nur eine oder zwei schleifen ausgelöst wurden??
27.12.2005, 16:49
felix000
Geh deine Batch nochmal durch, zum Beispiel des hier
if exist alarm.txt goto abbruch
...
:abbruch
goto ende
...
:ende
Wenn schon eine Schleife ausgelöst wurde, soll doch die Schleife trotzdem in der Datei stehen, damit du weißt welche Schleifen ausgelöst wurden. Bei dir wird aber ei einer weiteren Schleife die Batch sofort beendet ohne irgendwas zu tun.
Falls du ICQ oder Skype hast, meld dich mal per PN.