Original geschrieben von DaRake
Hallo,
ich habe ein Problem mit einer meiner Batch-Dateien. Die Batch-Datei soll nach drei bestimmten Adressen suchen, nur leider klappt das nicht so, wie ich mir das vorgestellt habe und es wird eben nicht nur eine SMS bei den drei Adressen verschickt, sondern immer.
Code:
CD C:\Eigene~1\POCSAG\POC32\
echo %3 >> alarm_rtw.txt
start C:\Windows\sndrec32.exe /play /embedding C:\Eigene~1\POCSAG\POC32\alarm_rtw.wav
find /c /i "Adresse 1" C:\Eigene~1\POCSAG\POC32\alarm_rtw.txt
if errorlevel==1 goto weiter
:weiter
find /c /i "Adresse 2" C:\Eigene~1\POCSAG\POC32\alarm_rtw.txt
if errorlevel==1 goto weiter2
:weiter2
find /c /i "Adresse 3" C:\Eigene~1\POCSAG\POC32\alarm_rtw.txt
if errorlevel==1 goto ende
:sms
start C:\Eigene~1\POCSAG\POC32\ibss.exe /U:Username /P:Passwort /E:Empfänger /A:Absender /T:4 /F:alarm_rtw.txt /OB:blacklist.txt /OF:filter.txt /SILENT
:ende
del alarm_rtw.txt
exit
Wo ist mein Fehler?
Gruß
Sebastian
Der Fehler liegt darin, daß Du bei der ersten Abfrage wenn Du die entsprechende "Adresse 1" gefunden hast zur Abfrage "Adresse 2" weitergehst. Da diese dann nicht gefunden wird, gehst Du zur Abfrage "Adresse 3" weiter. Da diese dann logischerweise auch nicht gefunden wird, gehst Du zum Ende. Analog ist es mit "Adresse 2". Nur wenn du "Adresse 3" suchst, wirst Du bei dieser Form der Batchdatei erfolg haben.
Um dieses Problem zu beseitigen, mußt Du die Abfragen dergestallt ändern, daß Du immer bei Erfolg zur Marke ":sms" verzweigst. bei Nichterfolg wird dann automatisch die nächste Abfrage ausgeführt.
Also statt
if errorlevel==1 goto weiter...
jeweils
if errorlevel==0 goto sms
in die Batchdatei schreiben, dann sollte der gewünschte Erfolg eintreten.
Außerdem solltest Du hinter der letzten Abfrage nach dem
if errorlevel==0 goto sms
noch ein
goto ende
einfügen. Die Sprung marken ":weiter..." können dann entfallen. Die komplette Batch sollte dann dieses Aussehen haben:
Code:
CD C:\Eigene~1\POCSAG\POC32\
echo %3 >> alarm_rtw.txt
start C:\Windows\sndrec32.exe /play /embedding C:\Eigene~1\POCSAG\POC32\alarm_rtw.wav
find /c /i "Adresse 1" C:\Eigene~1\POCSAG\POC32\alarm_rtw.txt
if errorlevel==0 goto sms
find /c /i "Adresse 2" C:\Eigene~1\POCSAG\POC32\alarm_rtw.txt
if errorlevel==0 goto sms
find /c /i "Adresse 3" C:\Eigene~1\POCSAG\POC32\alarm_rtw.txt
if errorlevel==0 goto sms
goto ende
:sms
start C:\Eigene~1\POCSAG\POC32\ibss.exe /U:Username /P:Passwort /E:Empfänger /A:Absender /T:4 /F:alarm_rtw.txt /OB:blacklist.txt /OF:filter.txt /SILENT
:ende
del alarm_rtw.txt
exit
Geändert von fwp (14.07.2005 um 15:16 Uhr)
Mit kameradschaftlichen Grüßen
FWP