tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1865
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FaSi_David FaSi_David ist offline Grünschnabel
    Registriert seit
    Jul 2008
    Beiträge
    1
    Guten Morgen,
    in dieser kleinen Batch möchte ich drei Variabelen vergleichen,
    und zwar, wenn Service Name und Host Name gleich sind, dann soll bei erfüllter Übereinstimmung mit dem Service Status eine .wav-Datei abgespielt werden. Den Player und die .wav's habe ich, das ich nicht das Problem, mein Problem ist es viel mehr, die Variabelen so zu "verknüpfen", das sie prüfen was ich will ...

    Ich sitze da nun schon 2-3 Tage dran, und bekomme es immer noch nicht hin!

    Vielleicht könnte mir jemand von euch helfen, eh' ich völlig verzweifel!

    Ganz liebe Grüße aus Lünen,
    David


    @echo off
    REM Change to directory of this batch file
    cd /d %~dp0

    SET PLAYER="playsnd.exe"
    SET WAV_PATH=.

    set SERVICE_NAME=%1
    set SERVICE_STATUS=%2
    set HOST_NAME=%3
    set AZETI_IP=%4
    set INFO_STRING=%5


    IF %HOST_NAME% == 195.190.0.*** == %SERVICE_NAME% == memory
    GOTO MEMORY

    :MEMORY
    IF %SERVICE_STATUS% == "UNKNOWN" GOTO UNKNOWN_example_1
    IF %SERVICE_STATUS% == "WARNING" GOTO WARNING_example_1
    IF %SERVICE_STATUS% == "CRITICAL" GOTO CRITICAL_example_1
    IF %SERVICE_STATUS% == "RECOVERY" GOTO RECOVERY_example_1
    IF %SERVICE_STATUS% == "OK" GOTO OK
    GOTO DONE

    :UNKNOWN_example_1
    %PLAYER% "%WAV_PATH%\a_unknown_1.wav"
    GOTO DONE

    :WARNING_example_1
    %PLAYER% "%WAV_PATH%\a_warning_1.wav"
    GOTO DONE

    :CRITICAL_example_1
    %PLAYER% "%WAV_PATH%\a_critical_1.wav"
    GOTO DONE

    :RECOVERY_example_1
    %PLAYER% "%WAV_PATH%\a_recovery_1.wav"
    GOTO DONE

    :OK
    %PLAYER% "%WAV_PATH%\ok.wav"
    GOTO DONE

    ONE

    Nunja, sollte es Fragen zu meinem Problem geben, ich beobachte den Threat in der Hoffnung auf schnellstmögliche Hilfe ... denn ich hätte das soo gerne endlich vom Tisch
     

  2. #2
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Hi ho
    Zitat Zitat von FaSi_David Beitrag anzeigen
    Guten Morgen,
    in dieser kleinen Batch möchte ich drei Variabelen vergleichen,
    und zwar, wenn Service Name und Host Name gleich sind, dann soll bei erfüllter Übereinstimmung mit dem Service Status eine .wav-Datei abgespielt werden.
    Also zunächst bin ich mi rnicht ganz sicher was Du machen willst. Obiges ist für mich nicht ganz eindeutig.
    Ich nehme an Dass die folgende Zeilen Deinen programmierwunsch gewidmet sind.


    IF %HOST_NAME% == 195.190.0.*** == %SERVICE_NAME% == memory
    GOTO MEMORY
    Ich muss zugeben kein Batch Experte zu sein. Daher habe ich im Internet gegoogelt und fand auch keinen Hinweis der Batchsprache ob hier Verknüpfungen mit "AND" und "OR" möglich sind, jedoch kann man mit if ... goto durchaus logisches Und bzw Oder nachbilden.
    So ich die richtige Codezeilen aus Deinem Extrakt erkundschaftet habe, verstehe ich sie auch nicht wirklich da sie irgendwie nicht so ganz auf Deinen Text passen mögen.
    Ich kann daher nur Mutmaßen das du pseudocodemäßig vielleicht soetwas im Sinn hattest
    Code :
    1
    2
    3
    
    [I]wenn [/I]HOST_NAME = "195.190.0.***" [I][B]und [/B][/I]SERVICE_NAME = "memory" [I]dann [/I]
       [U]spiele in Abhängigkeit von SERVICE_STATUS eine wav[/U] 
    [I]ende von wenn[/I]

    Falls es tatsächle kein Schlüsselwort für logich-UND in BATCH geben sollte, wäre also obiges umzuformulieren in

    Code :
    1
    2
    3
    4
    5
    
    [I]wenn [/I]HOST_NAME = "195.190.0.***" [I]dann [/I]
         [I] wenn[/I] SERVICE_NAME = "memory" [I]dann [/I]
              [U]spiele in Abhängigkeit von SERVICE_STATUS eine wav[/U] 
         [I]ende von wenn[/I]
    [I]ende von wenn[/I]

    Da offenbar batch die sogenannte strukturierte Programmierung offenbar nicht sonderlich unterstüzt (ich fand bisher keinen Hinweis darauf) müssen hier die Strukturierungen obiges Pseudocodes umgesetzt werden in goto-Anweisungen.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    [I]wenn [/I]HOST_NAME = "195.190.0.***" [I]gehe zu [B] servicenamen_prüfen[/B] [/I]
    [I]gehe zu [B] DONE[/B] [/I]
    [B]: servicenamen_prüfen[/B]
    [I]wenn[/I] SERVICE_NAME = "memory" [I]gehe zu [B] wav_wählen[/B] [/I]
    [I]gehe zu [B] DONE[/B] [/I]
    [B]: wav_wählen[/B]
    [U]spiele in Abhängigkeit von SERVICE_STATUS eine wav[/U] 
    [B]: DONE[/B]

    Für spiele in Abhängigkeit von SERVICE_STATUS eine wav ist dann lediglich der Restcode einzusetzen, den Du ab :Memory mit den aneinanderhängenden if-Statements in deinem Code zeigst.
    Viel Spaß und Glück bei der Umsetzung

    Takidoso
    Geändert von takidoso (24.07.08 um 17:35 Uhr)
     

Ähnliche Themen

  1. variablen mit 1 vergleichen
    Von DerEisige im Forum PHP
    Antworten: 3
    Letzter Beitrag: 17.12.08, 16:02
  2. Variablen vergleichen
    Von spikaner im Forum PHP
    Antworten: 2
    Letzter Beitrag: 10.06.08, 16:42
  3. 3 Variablen vergleichen
    Von Kurt Cobain im Forum PHP
    Antworten: 6
    Letzter Beitrag: 03.05.08, 22:48
  4. Batch - Pfade vergleichen
    Von freestyly im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 23.01.08, 08:32
  5. txt zeilenweise mit variablen vergleichen
    Von wutz1111 im Forum Visual Basic 6.0
    Antworten: 16
    Letzter Beitrag: 14.05.02, 18:01