Wie muss ich diese if-else Abfrage einbauen?
Bin auf dem Gebiet nicht so bewandelt.
Danke
Wie muss ich diese if-else Abfrage einbauen?
Bin auf dem Gebiet nicht so bewandelt.
Danke
z.B. so:
chcp 1252
if %1==RIC1 set alias=FHZ1
if %1==RIC2 set alias=FHZ2
if %1==RIC3 set alias=FHZ3
if %1==RIC4 set alias=FHZ4
if %2==1 set subric=AF Alarm
echo Am %date% um %time:~0,8%>> c:\mail\Alarmierung.txt
echo Alarmierung von %1>> c:\mail\Alarmierung.txt
echo ----------------------------------->> c:\mail\Alarmierung.txt
echo Fahrzeug: %alias%>> c:\mail\Alarmierung.txt
echo Funktion: %subric%>> c:\mail\Alarmierung.txt
echo ----------------------------------->> c:\mail\Alarmierung.txt
echo ----------------------------------->> c:\mail\Alarmierung.txt
if exist sperre.txt (goto alt) else (goto neu)
:neu
echo %date% um %time >> c:\mail\sperre.txt
wait 60
echo Ende der Alarmierung>> c:\mail\Alarmierung.txt
c:\mail\blat.exe -install PCNAME xxxx@gmx.de
c:\mail\blat.exe "c:\mail\Alarmierung.txt" -to xxxx@gmx.de -server mail.gmx.net -u xxxx@gmx.de -pw xxxx@gmx.de -server mail.gmx.net -u xxxx@gmx.de -pw xxxx -cf c:\mail\ccliste.txt -debug -timestamp -log versandlog.txt -subject -sf Alarmierungsprotokoll
del c:\mail\Alarmierung.txt
del c:\mail\sperre.txt
goto ende
:alt
REM Hier gegebenfalls weitere Aktionen definieren die bei bereits erfolgter Alarmierung erfolgen sollen.
goto ende
:ende
Allerdings wundert es mich dass dein wait-Kommando ohne externes Programm funktioniert. Oder ist das in den neueren Windows-Versionen jetzt so?
Geändert von Allmächtiger (17.01.2013 um 16:22 Uhr) Grund: Kleinen, aber elementaren Fehler ausgebessert...
Danke, bei der nächsten Alarmierung wird sich's zeigen, ob's klappt ;-)
Ich berichte dann
Hey Allmächtiger,
es hat leider nicht so geklappt wie ich wollte.
Ich habe deine geänderte Batchdatei übernommen und nichts weiter erstellt.
Mail sieht trotzdem wie folgt aus:
Am 18.01.2013 um 0:20:54
Alarmierung von RIC3
-----------------------------------
Fahrzeug: FHZ3
Funktion: AF Alarm
-----------------------------------
-----------------------------------
Ende der Alarmierung
Am 18.01.2013 um 0:20:54
Alarmierung von RIC1
Am 18.01.2013 um 0:20:54
-----------------------------------
Alarmierung von RIC2
Fahrzeug: FHZ1
-----------------------------------
Funktion: AF Alarm
Fahrzeug: FHZ2
-----------------------------------
Funktion: AF Alarm
-----------------------------------
-----------------------------------
-----------------------------------
Ende der Alarmierung
Ende der Alarmierung
Am 18.01.2013 um 0:20:55
Alarmierung von RIC4
-----------------------------------
Fahrzeug: FHZ4
Funktion: AF Alarm
-----------------------------------
-----------------------------------
Ende der Alarmierung
Steht das alles in einer einzige Mail?
Theoretisch sollte alles schön nacheinander reingeschrieben werden, ich kann jetzt so nicht sagen warum das nicht funktioniert.
Sicherheitshalber nochmal die Frage: Wie bewerkstelligst du das wait-Kommando? Befindet sich eine Datei mit dem Namen wait.exe in deinem Programmverzeichnis?
Ja das stand alles in einer Mail, das war die vollständigste der 4 Mails.
Eine wait.exe befindet sich in dem Verzeichnis nicht. Wo bekomme ich die her und was muss ich dann in der Batchdatei verändern?
Ich benutze FMS32 als Auswertprogramm. Muss da bei jeder der 4 RICs die Aktion ausgeführt werden.
Soweit ich weiß gibt es bei "normalen" Windows-Batch-Dateien keine "wait"-Funktion, somit wird der Befehl nicht ausgeführt. Zumindestens war/ist das bis Windows XP so.
Hier kann man sich kostenlos eine Datei herunterladen die eine solche Funktion nachrüstet:
http://www.petersen.de/content/conte....php?idart=163
Du musst die wait.exe dann in das gleiche Verzeichnis legen wie dein Alarmskript, also c:\mail\
Die Zeile
wait 60
änderst du dann in
wait.exe 60000
Ich vermute mal dass es daran liegt. Kann es leider nicht überprüfen da ich seit längerem nicht mehr mit Windows arbeite.
Guten Abend mir fällt beim drüberschaun schon so an kleiner Fehler auf ....
if exist sperre.txt (goto alt) else (goto neu)
müsste doch z.b.
if exist c:\mail\sperre.txt (goto alt) else (goto neu)
sein?
Nachtrag:
Zum Thema Wait:
Unter Windows 7 gibt es "timeout"
timeout /T 10 /nobreak
wartet z.b. 10 sekunden
Hmmm, das kommt drauf an mit welcher Umgebungsvariable das Skript gestartet wird. Eigentlich sollte es so wie es jetzt ist auch mit einer relativen Pfadangabe zurecht kommen, da die sperre.txt und das Alarmskript ja im gleichen Verzeichnis liegen.
Vorsichtshalber könnte man aber auch mal eine absolute Pfadangabe machen so wie du geschrieben hast, auch wenn ich normalerweise meine Programme lieber mit relativen Pfaden schreibe. Wie gesagt, mit Windows hab ich seit längerer Zeit nix mehr zu tun, jedenfalls mit Batch-Skripten...
Habe vorsichtshalber mal die absolute Pfadangabe gewählt.
Wie sieht es eigentlich mit der sperre.txt aus?
Muss ich die selbst erstellen und was muss da drin stehen oder wird die wie die Alarmierung.txt automatisch generiert?
Wenn ein neuer Alarm eingeht und damit das Programm an die Sprungmarke :neu kommt, wird danach mit dem Befehl
echo %date% um %time >> c:\mail\sperre.txt
die Datei Sperre angelegt. Was die als Inhalt hat ist total Banane. Nach Versand der Email wird sie auch wieder automatisch gelöscht. Die hat eigentlich keinen anderen Zweck als in dem Zeitraum dazwischen dem Programm bei einem weiteren Alarm anzuzeigen, dass es vor kurzem bereits einen Alarm gab.
Muss die Zeile wo das "wait" steht vielleicht so heißen?
c:\mail\wait.exe 6000
Sonst kommt da immer die Meldung, dass der Kommand wait nicht ausgeführt werden konnte
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)