gnoovy 10 Geschrieben 10. Mai 2011 Melden Teilen Geschrieben 10. Mai 2011 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 Zitieren Link zu diesem Kommentar
ZeroKnowledge 11 Geschrieben 10. Mai 2011 Melden Teilen Geschrieben 10. Mai 2011 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 :) Zitieren Link zu diesem Kommentar
gnoovy 10 Geschrieben 10. Mai 2011 Autor Melden Teilen Geschrieben 10. Mai 2011 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 Zitieren Link zu diesem Kommentar
ZeroKnowledge 11 Geschrieben 10. Mai 2011 Melden Teilen Geschrieben 10. Mai 2011 Du könntest mal probieren, die Ausgabe per | direkt an find zu übergeben <Programm-Aufruf> | find /i ... Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 11. Mai 2011 Melden Teilen Geschrieben 11. Mai 2011 ...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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.