Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ein dosprogramm mit errorlevel beenden (https://www.delphipraxis.net/41420-ein-dosprogramm-mit-errorlevel-beenden.html)

Harry M. 3. Mär 2005 02:53


ein dosprogramm mit errorlevel beenden
 
wie kann ich eine konsolenapplikation mit einem errorlevel so beenden, das ich den errorlevel in einer batchdatei mit goto "weiterverarbeiten" kann? (ich meine aber nicht den errorlevel eines laufzeitfehler den das programm erzeugen könnte, sondern das ergebnis des programmes) hintergrund ist ich brauche ein pingtool das mit einem errorlevel endet. wenn der host nicht erreichbar ist soll es mit 1 enden und wenn erreichbar mit 0.


gruß delphicus

Luckie 3. Mär 2005 03:41

Re: ein dosprogramm mit errorlevel beenden
 
Versuch mal die globale Variable ExitCide zu setzen.

Sprint 3. Mär 2005 04:04

Re: ein dosprogramm mit errorlevel beenden
 
Halt(1); bzw. Halt(0);

Harry M. 3. Mär 2005 04:48

Re: ein dosprogramm mit errorlevel beenden
 
Halt(1); bzw. Halt(0); wars was ich gesucht hatte thx

Luckie 3. Mär 2005 12:47

Re: ein dosprogramm mit errorlevel beenden
 
Zitat:

Zitat von Sprint
Halt(1); bzw. Halt(0);

Ist dass den unbedingt nötig, das Programm vor eine Betonmauer zu lenken, um es anzuhalten? :roll:

So, habe mir mal die Mühe gemacht und das getestet:
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
  ExitCode := 2;
end;
Das ist das Delphi Programm. Wie man sieht, wird der ExitCode auf zwei gesetzt.

Jetzt die Batch-Datei:
Code:
echo off
Project1.exe

if errorlevel 2 goto Fehler
if not errorlevel 2 goto Richtig

:Richtig
echo "Richtig"
goto Ende

:Fehler
echo "Errorlevel 2"
goto Ende

:Ende
Pause
Wie man sieht, soll "Errorlevel 2" ausgegeben werden, wenn der Errorlevel / ExitCode des Programmes zwei ist und "Richtig" in allen anderen Fällen.

Und hier nun die Ausgabe:
Code:
E:\Delphi\Programme>echo off
"Errorlevel 2"
Drücken Sie eine beliebige Taste . . .
Wie man sieht, setzt die globale Variable ExitCode den Errorlevel. Ändere ich den ExitCode in 0, wird zum Zweig :Richtig in der Batch-Datei gesprungen.

Tu mir also bitte einen Gefallen und nimm das Halt aus deinem Code, sonst gibt es auf den Delphi-Tagen in Kassel keinen Nachtisch für dich. :mrgreen:

Harry M. 3. Mär 2005 13:32

Re: ein dosprogramm mit errorlevel beenden
 
danke luckie, du wieder mal das eben mehr möglichkeiten gibt....

Luckie 3. Mär 2005 13:37

Re: ein dosprogramm mit errorlevel beenden
 
Zitat:

Zitat von delphicus
danke luckie, du wieder mal das eben mehr möglichkeiten gibt....

Für mich ist in diesem Fall Halt keine Möglichkiet. :zwinker:

Sprint 3. Mär 2005 14:04

Re: ein dosprogramm mit errorlevel beenden
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Sprint
Halt(1); bzw. Halt(0);

Ist dass den unbedingt nötig, das Programm vor eine Betonmauer zu lenken, um es anzuhalten?

Es ging hier um eine Konsolenanwendung. Bei einer VCL Anwendung hätte ich etwas anderes gepostet.

Edit: \\ExitCode und dann Exit wäre wohl besser.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz