Hallo,
ich kenne mich mit AutoIt derzeit noch überhaupt nicht aus und habe eine kleine Frage.
Ich verteile diverse Softwarepakete über Batches (CMDs). Diese Batches liefern einen Exit/Error-Code an ein übergeordnetes System (LANDesk), um Auswertungen zu machen oder einfach zu sehen, ob der Installationstask auch auf allen Rechnern durchlaufen wurde.
Damit nicht jeder an den Source-Dateien der Batches (die Programmdateien und die Batch selbst) herumfummeln kann möchte ich daraus eine EXE machen, die aber weiterhin die Exit/Error-Codes sendet.
Jetzt meine Frage: Ist es möglich mit Hilfe von AutoIt einen Exit-Code einer Batch "aufzufangen" und weiterzuleiten?
(Ich weiss, ich könnte auch alle Batche nach AutoIt konvertieren, allerdings wäre ich dann noch ein paar Monate beschäftigt und es geht wie immer um eine Lösung ASAP...
Hier ist ein kleines Batchbeispiel, es soll ein Verzeichnis erstellen, wenn es schon da ist bringt es einen Fehler und dieser soll dann als Exit-Code an das übergeordnete System geschickt werden.
Die Erstellung der Log-datei dient nur dem Test...
Der Befehl %LDDIR%\sdclient.exe" /msg= sendet eine Meldung an LANDesk, der abschließende Befehl EXIT /B %ResultCode% sendet den Errorcode an LANDesk (0 bedeutet "erfolgreich", alles andere bedeuted Fehler)
@ECHO OFF
set "LDDIR=%ProgramFiles%\LANDesk\LDClient"
:: This batch file sends ERRORLEVEL to the Core Server.
:: Run sdclient.exe to result in ERRORLEVEL being 0
md %temp%\dideldum 2>&1
:: test
set "ResultCode=%ERRORLEVEL%"
echo The errorcode is: %ResultCode% >> %temp%\packages\test.log
if "%ResultCode%"=="0" (
"%LDDIR%\sdclient.exe" /msg="dideldum created with result code %ResultCode%."
echo ok: %ResultCode% >> %temp%\test.log
goto END
) ELSE (
"%LDDIR%\sdclient.exe" /msg="diedeldum creation failed with result code %ResultCode%. Exiting"
echo not ok: %ResultCode% >> %temp%\test.log
)
:END
EXIT /B %ResultCode%
Alles anzeigen
Ach ja, die Batch funktioniert so wie sie ist, nur wenn ich sie mit Hilfe von Tools, wie 7zip, Batch2Exe oder auch Packagebuilder, zu einer EXE mache, werden die Exitcodes nicht weitergeleitet.
mfg
Axel