Ein "Programm" (z.B. unter Windwos eine *.exe Datei, oder unter Unix
irgendeine ausführbare Datei) ist, wenn es "aufgerufen" wird, eine
geschlossene und gekapselte Aktion. Diese Kapselung bedeutet, das das
unterlagerte Betriebssystem einen eigenständigen Subprozess aufruft, und
diesem Programm Speicher zur Ausführung zuweist etc.
Das Programm selbst kann nun als Rückgabewert-Übergabeparameter einen
eindeutigen "errorlevel" zurück geben. es handelt sich dabei um eine
unsigned INT-Variable. Vereinbarungsgemäß bedeutet der Rückgabewert 0:
"alles ist gut gegangen". ein wert ungleich 0 bedeutet iregendwas ist
schief gegangen (das mit dem "level" ist meistens nicht so zu verstehen,
daß größere Zahlen schlimemre Sachen vermuten lassen. Die jeweiligen
Errorlevel-Returncodes können der Dokumentation der jeweiligen Programme
entnommen werden.
natürlich gibt es diese Errorlevel-Philosophie sowol als
shell-Kommandoaufruf, als auch als Aufruf von Progammen mittels einer
API.
versuch mal folgendes auf deiner Windows-Kiste (der Name der
Environment-Variable unter Unix heißt je nach verwendeten shell anders)
1 | H:\Dokumente und Einstellungen\Martin>dir
|
2 | Datenträger in Laufwerk H: ist DATA
|
3 | Volumeseriennummer: 342C-1DE4
|
4 |
|
5 | Verzeichnis von H:\Dokumente und Einstellungen\Martin
|
6 |
|
7 | 04.03.2005 21:40 <DIR> .
|
8 | 04.03.2005 21:40 <DIR> ..
|
9 | 09.11.2005 22:56 100 LuResult.txt
|
10 | 27.02.2005 23:04 <DIR> Startmenü
|
11 | 14.08.2005 15:30 864 reglog.txt
|
12 | 21.05.2006 11:15 69 default.pls
|
13 | 04.03.2005 21:40 <DIR> Favoriten
|
14 | 27.02.2005 23:04 <DIR> Desktop
|
15 | 04.03.2005 21:40 <DIR> Eigene Dateien
|
16 | 05.03.2005 22:19 <DIR> Application Data
|
17 | 21.05.2006 13:48 120 .java.policy
|
18 | 30.12.2006 23:14 9.039 jap.conf
|
19 | 30.10.2006 23:40 <DIR> Contacts
|
20 | 08.03.2005 21:53 <DIR> Phone Browser
|
21 | 10.03.2005 22:44 <DIR> WINDOWS
|
22 | 5 Datei(en) 10.192 Bytes
|
23 | 10 Verzeichnis(se), 5.277.024.256 Bytes frei
|
24 |
|
25 | H:\Dokumente und Einstellungen\Martin>echo %errorlevel%
|
26 | 0
|
27 |
|
28 | H:\Dokumente und Einstellungen\Martin>dir /hutzelputzel
|
29 | Ungültige Option - "hutzelputzel".
|
30 |
|
31 | H:\Dokumente und Einstellungen\Martin>echo %errorlevel%
|
32 | 1
|
------
Interpretation:
beim ersten Befehlsaufruf wurde "dir" ohne weitere Parameter aufgerufen.
Der Aufruf deses Befehls war erfolgreich, der Rückgabewert ist 0
beim 2. Aufruf wurde dem dir-Befehl der unbekannte Parameter
/hutzelputzel übergeben. es erfolgt zu Recht die textmeldung, daß dieses
eine ungültige Option sei. Der errorvalue (errorlevel) gibt daher einen
1 zurück.
In Batchprogrammen kann sowas ausgewertet werden, um den programmablauf
des aufrufenden zu steuern.