Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 26

Thema: bei bestimmter Funktion keine Batch ausführen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Danny Gast

    bei bestimmter Funktion keine Batch ausführen?

    Hallo, ich benutze POC32 und wenn ein Alarm kommt, startet die Batch die auch die Funktion 1 bis 4 überprüft.

    Allso zum Beispiel:

    RIC 0194567 Funktion 0 = Kleinalarm
    RIC 0194567 Funktion 1 = DLK Maschinisten
    RIC 0194567 Funktion 2 = Vollalarm
    RIC 0194567 Funktion 3 = Probealarm

    Dann wird die jeweilige Stichwort mittels Clemail an SMS versendet.

    Jetzt habe ich aber das Problem das die DAU Meldungen die selbe RIC haben, aber andere Funktionnummern.

    Das heißt, ich möchte nicht infomiert werden wenn der DAU XY mit der Funktion 2 einen Reset macht, aber es wäre schon interessant wenn ich weis, das er komplett ausgefallen ist (Funktion 3)

    Wie kann ich das in meiner Batch regeln?

    Grüße

    Danny

  2. #2
    Registriert seit
    18.12.2001
    Beiträge
    4.989
    Also versteh ich das richtig, du willst eine SMS bekommen, wenn der DAU mit der RIC 1234567 und der SubRIC 3 eine Nachricht schickt/bekommt ?

    Mach einfach ne IF Abfrage. Du bekommst ja von POC32 RIC FUNC und MSG übergeben. Und genauso wie du wohl mit IF die Texte an die SMS zuweist, kannst du durch ne Abfrage überprüfen ob ne SMS geschickt werden soll oder nicht.

    Poste mal bitte deine bisherige Batchdatei.

    Gruß Joachim

  3. #3
    Danny Gast
    Hallo Joachim,

    da hab ich aber echt schlecht beschrieben!

    Der passende Text sollte Lauten:

    RIC 0194567 Funktion 0 = Probealarm
    RIC 0194567 Funktion 1 = Leitstellen Personal
    RIC 0194567 Funktion 2 = DAU Meldungen
    RIC 0194567 Funktion 3 = DAU Stoerung

    Davon möchte ich nur die Funktion 3!

    Meine Batch:

    if exist "d:\baycom\poc32\status.txt" goto ende

    echo "Alarm läuft" > status.txt


    @Echo off
    cls
    Echo Alarmierung
    if "%2"=="0" set text=Probealarm
    if "%2"=="1" set text=Leitstellen Personal
    if "%2"=="2" set text=DAU Meldungen
    if "%2"=="3" set text=DAU Stoerung
    echo %3> d:\temp.txt
    ansiasci d:\temp.txt d:\Alarm.txt /an /o
    d:\baycom\poc32\clemail.exe -to XXXX@gmx.de -from dXYX@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 000000 -poppass XXXXX -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
    wait 30

    del status.txt

    Grüße und Dank

    Danny

  4. #4
    Registriert seit
    18.12.2001
    Beiträge
    4.989
    Ach soo ... Na da wär echt nie einer dahintergekommen. So einfach ist das !! :-)

    @Echo off

    if exist "d:\baycom\poc32\status.txt" goto ende

    if "%2"=="0" goto ende
    if "%2"=="1" goto ende
    if "%2"=="2" goto ende
    if "%2"=="3" set text=DAU Stoerung

    cls
    Echo Alarmierung
    echo "Alarm läuft" > status.txt

    echo %3> d:\temp.txt
    ansiasci d:\temp.txt d:\Alarm.txt /an /o
    d:\baycom\poc32\clemail.exe -to XXXX@gmx.de -from dXYX@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 000000 -poppass XXXXX -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
    wait 30

    del status.txt
    :ende
    So musst du das ändern. Dann wird bei 0,1 und 2 direkt die Batch wieder verlassen und nur bei 3 wird die Alarmierung gestartet.
    Alles was FETT ist hab ich geändert, bzw nur an eine andere Stelle verschoben. So macht das alles Sinn.

    Gruß Joachim

  5. #5
    Registriert seit
    19.07.2003
    Beiträge
    756
    Hi,

    Und wer schreibt mir meine um *g* zumindest weil ich ja SmsCom nutze weil ich ja kein Dsl habe! Möchte aber auch nur den Sub B angezeigt bekommen....Wie mache ich des richtig?

    @echo off
    cls

    echo Alarmierung per Handy aktiv. Bitte warten...
    echo /t %2 %3 /n +49 172 40***** /d D2 /a 22222 > nachricht.txt

    C:\Programme\SchmidtSoft\SMScom\smscom.exe nachricht.txt

    Jemand ne idee?

    MfG
    Löwe-SE
    Gruß
    L-S

  6. #6
    Registriert seit
    18.12.2001
    Beiträge
    4.989
    Genauso. Einfach die IF's einfügen.

    @Echo off

    if exist "d:\baycom\poc32\status.txt" goto ende

    if "%2"=="0" goto ende
    if "%2"=="1" goto start
    if "%2"=="2" goto ende
    if "%2"=="3" goto ende

    :start
    cls
    echo Alarmierung per Handy aktiv. Bitte warten...
    echo "Alarm läuft" > status.txt
    echo /t %2 %3 /n +49 172 40***** /d D2 /a 22222 > d:\temp.txt
    ansiasci d:\temp.txt d:\nachricht.txt /an /o
    C:\Programme\SchmidtSoft\SMScom\smscom.exe d:\nachricht.txt
    wait 30

    del status.txt
    :ende
    Die zusätzlichen Zeilen verhindern zum einen ein doppeltes Versenden von SMS und wandeln den Windows-Zeichensatz in den DOS-Zeichensatz um.

    EDIT:

    Du musst noch mit den Verzeichnissen aufpassen die überall in der Batch-Datei stehen. Die müssen natürlich auf deine Wünsche angepasst werden!

    Gruß Joachim
    Geändert von MiThoTyN (15.04.2004 um 10:40 Uhr)

  7. #7
    Registriert seit
    19.07.2003
    Beiträge
    756
    Danke!

    Sehr geil, so wollte ich das haben!

    MfG
    Löwe-SE
    Gruß
    L-S

  8. #8
    Danny Gast
    Superklasse!

    Danke vielmals!

    Jetzt noch ne Frage:

    ist es auch Möglich das man Suchbegriffe herausfiltert?

    Zum Beispiel: Brandmeldeanlage, Ölspur und so was?

    Ich meine das er die suchwörter erkennt und dann einfach auch zum Ende geht ohne etwas zu Machen?

    Grüße

    Danny

  9. #9
    Registriert seit
    18.12.2001
    Beiträge
    4.989
    Darfs sonst noch etwas sein ? :-)

    @Echo off

    if exist "d:\baycom\poc32\status.txt" goto ende

    if "%2"=="0" goto ende
    if "%2"=="1" goto ende
    if "%2"=="2" goto ende
    if "%2"=="3" set text=DAU Stoerung

    echo %3> d:\temp.txt
    ansiasci d:\temp.txt d:\Alarm.txt /an /o


    find /c "BMA" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Ölspur" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten


    cls
    Echo Alarmierung
    echo "Alarm läuft" > status.txt
    d:\baycom\poc32\clemail.exe -to XXXX@gmx.de -from dXYX@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 000000 -poppass XXXXX -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
    wait 30

    del status.txt
    :ende

    Gruß Joachim

  10. #10
    Danny Gast
    nein, momentan bin ich dann mal wieder super glücklich!

    Vielen Dank!

    Danny

  11. #11
    Danny Gast
    Hallo, funktionierte nur einmal mit dem Filter, danach war schluß mit allem!
    Problem ist, das er wenn eines dieser Suchwörter auftaucht sofort zum Ende geht und den Status text nicht löscht!
    Dadurch werden andere garnicht erst gestartet!

    Kann ich jetzt den Befehl del status text einfach nach Ende einfügen oder blickt der das dann nicht mehr?

    Danny

  12. #12
    Registriert seit
    18.12.2001
    Beiträge
    4.989
    Du kannst das hier

    del status.txt
    :ende

    natürlich einfach umdrehen in das hier

    :ende
    del status.txt


    Aber die Datei ist normal garnicht vorhanden, wenn keine SMS geschickt wurde.

    Poste nochmal bitte deine aktuelle Batchdatei.
    Denke da ist noch ein Fehler drinne irgendwo.

    Gruß Joachim

  13. #13
    Danny Gast
    hier ist Sie!

    Aber er macht doch gleich nach der Subric unterteilung >status.txt und wenn du danach sagst GOTO Ende, wird die Datei nicht gelöscht!

    Oder sehe ich das falsch?

    Danny

    @Echo off

    if exist "d:\baycom\poc32\status.txt" goto ende

    if "%2"=="0" set text=FW-Xy
    if "%2"=="1" set text=FW-xy-kleinalarm
    if "%2"=="2" set text=FW-XY-Reserve
    if "%2"=="3" goto Ende (FW-xy-Probealarm)

    cls
    Echo Alarmierung
    echo "Alarm läuft" > status.txt
    echo %3> d:\temp.txt
    ansiasci d:\temp.txt d:\Alarm.txt /an /o

    find /c "BMA" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Ölspur" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Türöffnung" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Brandmeldeanlage" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Probealarm" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Öl auf Strasse" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Proberuf" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    d:\baycom\poc32\clemail.exe -to xxxx@gmx.de -from xxxy@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser xxyx -poppass xyxyxy -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
    wait 15

    del status.txt
    :ende

  14. #14
    Registriert seit
    18.12.2001
    Beiträge
    4.989
    Hi Danny.

    Dachte ich mir. Da ist noch ein kleiner Dreher drinne.
    Das überprüfen der Stichwörter muss VOR dem erstellen
    der Status.txt erfolgen. Also einfach so ändern :

    Die Zeilen wo REM davorsteht kannst du übrigens weglassen.
    Die werden eh nicht ausgeführt.

    Das "(FW-xy-Probealarm)" hinter dem "goto Ende" muss auch weg.

    Original geschrieben von Danny
    @Echo off

    if exist "d:\baycom\poc32\status.txt" goto ende

    if "%2"=="0" set text=FW-Xy
    if "%2"=="1" set text=FW-xy-kleinalarm
    if "%2"=="2" set text=FW-XY-Reserve
    if "%2"=="3" goto Ende

    find /c "BMA" d:\Alarm.txt
    if %errorlevel%==0 goto ende

    find /c "Ölspur" d:\Alarm.txt
    if %errorlevel%==0 goto ende

    find /c "Türöffnung" d:\Alarm.txt
    if %errorlevel%==0 goto ende

    find /c "Brandmeldeanlage" d:\Alarm.txt
    if %errorlevel%==0 goto ende

    find /c "Probealarm" d:\Alarm.txt
    if %errorlevel%==0 goto ende

    find /c "Öl auf Strasse" d:\Alarm.txt
    if %errorlevel%==0 goto ende

    find /c "Proberuf" d:\Alarm.txt
    if %errorlevel%==0 goto ende


    cls
    Echo Alarmierung
    echo "Alarm läuft" > status.txt
    echo %3> d:\temp.txt
    ansiasci d:\temp.txt d:\Alarm.txt /an /o


    d:\baycom\poc32\clemail.exe -to xxxx@gmx.de -from xxxy@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser xxyx -poppass xyxyxy -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
    wait 15

    del status.txt
    :ende

  15. #15
    Danny Gast
    Hey das funktioniert auch nicht!

    Er hat dann keinen Text zum Übermitteln!

    Ich probiere es jetzt mal so!

    @Echo off

    if exist "d:\baycom\poc32\status.txt" goto ende

    if "%2"=="0" set text=FW-Xy
    if "%2"=="1" set text=FW-xy-kleinalarm
    if "%2"=="2" set text=FW-XY-Reserve
    if "%2"=="3" goto Ende (FW-xy-Probealarm)

    cls
    Echo Alarmierung
    echo "Alarm läuft" > status.txt
    echo %3> d:\temp.txt
    ansiasci d:\temp.txt d:\Alarm.txt /an /o

    find /c "BMA" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Ölspur" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Türöffnung" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Brandmeldeanlage" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Probealarm" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Öl auf Strasse" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    find /c "Proberuf" d:\Alarm.txt
    if %errorlevel%==0 goto ende
    REM if %errorlevel%==1 echo Stichwort nicht enthalten

    d:\baycom\poc32\clemail.exe -to xxxx@gmx.de -from xxxy@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser xxyx -poppass xyxyxy -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
    wait 15

    :ende
    del status.txt



    ___________________________________-

    Scheint ja dann doch nicht soooooooooo einfach zu sein!

    Danny

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •