Jump to content

Batch Programmierung - Befehl in einer Variablen speichern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

hi zusammen,

 

ich möchte mittels einer Batchdatei einer Variablen den Wert des Befehls find übergeben. Aber egal wie ich es anstelle wird der Wert nicht korrekt übergeben. Habe meine Batch so programmiert, dass entweder 1 oder 0 übergeben wird. Allerdings wird bei der Analyse immer die TXT-Datei selbst in der Variablen gespeichert, anstatt der Wert 1 oder 0. Anbei mal meine Batch. Bin heute schon den ganzen Tag da dran, also nicht wundern falls ich den Wald vor lauter Bäumen nicht sehen sollte.

 

@echo off
"C:\Program Files (x86)\check_mk\scripts\"check_http.exe -H localhost -u /im-DEMO/im -p 8080 -e 200 > "C:\Program Files (x86)\check_mk\scripts\"eloim.txt
move /Y "C:\Program Files (x86)\check_mk\scripts\"eloim.txt "C:\Program Files (x86)\check_mk\" >nul
for %%a in ('find /I /C "HTTP CRITICAL" "C:\Program Files (x86)\check_mk\"eloim.txt') do Set T=%%a
If "%T%"=="1" goto JA

goto Nein

:Nein
echo %T%
pause
set var=HTTP OK
echo 0 ELOImporter - %var%
pause
EXIT

:JA
set var=HTTP CRITICAL
echo 2 ELOImporter - %var%
pause
EXIT

Link zu diesem Kommentar

Warum nutzt du nicht den Returnwert vom find-Befehl?

Wenn etwas gefunden wurde ist der errorlevel = 0 ansonten 1

 

@echo off
"C:\Program Files (x86)\check_mk\scripts\"check_http.exe -H localhost -u /im-DEMO/im -p 8080 -e 200 > "C:\Program Files (x86)\check_mk\scripts\eloim.txt"
move /Y "C:\Program Files (x86)\check_mk\scripts\eloim.txt" "C:\Program Files (x86)\check_mk\" >nul
find /i "http critical" "C:\Program Files (x86)\check_mk\eloim.txt">nul
If %errorlevel%=0 goto JA

:Nein
set var=HTTP OK
echo 0 ELOImporter - %var%
pause
EXIT

:JA
set var=HTTP CRITICAL
echo 2 ELOImporter - %var%
pause

EXIT

 

In deinem Code ist das abschließende Anführungszeichen beim Pfad zur eloim.txt falsch gesetzt. Ich hab das auch noch mit korrigiert :)

Link zu diesem Kommentar

Hi ZeroKnowledge,

 

vielen Dank. Dank dir hab ich nun die Lösung. Aber dein Script war auch noch an einer Stelle falsch :D. Es muss beim Errorlevel zwei Gleichheitszeichen stehen, nicht nur eines. Somit stehts 1:1 hehe... Anbei mal meine Batch so wie es funktioniert.

Wüßtest du vielleicht noch wie ich an die Informationen ohne die eloim.txt komme? Kann ich die Ausgabe von der check_http.exe-Zeile irgendwie direkt übergeben? Oder muss man das mit einer Datei lösen?

 

@echo off
"C:\Program Files (x86)\check_mk\scripts\"check_http.exe -H localhost -u /im-DEMO/im -p 8080 -e 200 > "C:\Program Files (x86)\check_mk\scripts\"eloim.txt
move /Y "C:\Program Files (x86)\check_mk\scripts\"eloim.txt "C:\Program Files (x86)\check_mk\" >nul
find /i "HTTP CRITICAL" "C:\Program Files (x86)\check_mk\"eloim.txt>nul
If %errorlevel%==0 goto JA
goto Nein

:Nein
set var=HTTP OK
echo 0 ELOImporter - %var%
EXIT

:JA
set var=HTTP CRITICAL
echo 2 ELOImporter - %var%
EXIT

Link zu diesem Kommentar
...Wüßtest du vielleicht noch wie ich an die Informationen ohne die eloim.txt komme? Kann ich die Ausgabe von der check_http.exe-Zeile irgendwie direkt übergeben? Oder muss man das mit einer Datei lösen?

 

Moin,

 

gestern habe ich einen Beitrag hier schon zurückgezogen, glaubte, das Problem sei glöst-

 

Ich stelle hier mal einen den Link ein zu einem Thema von mir, dort in #19 ist eine Lösung, in der Schleife wird ein Programm ausgeführt, desse Ausgabe wird per Pipe | an Find übergeben.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...