Hallo pl,
Wenn ich ein PHP Script starte, das einen Syntax-Error enthält (Parse Error), endet PHP.EXE mit ERRORLEVEL 255.
Wenn ich ein PHP Script starte, das auf einen Fatal Error läuft (z.B. ungefangene Exception), endet PHP.EXE mit ERRORLEVEL 255.
Wenn ich ein C# Programm starte, dass nichts weiter tut als throw new Exception("Foo!");
, endet der Prozess (reproduzierbar) mit ERRORLEVEL E0434352 (oder -532462766), was ein .net interner Code für das Windows SEH (Structured Exception Handling) ist.
D.h. deine Annahme mit Exit Code 255 ist auf begrenzte Beobachtungen gestützt und nicht zu verallgemeinern. Es gibt unter Windows eine Menge von definierten Systemfehlercodes, und die meisten Shell-Programme liefern sie auch zurück wenn einer davon auftritt. Aber ansonsten ist hier viel Raum für Kreativität. Perl und PHP sind hier bereits kreativ - 255 ist kleinster gemeinsamer Nenner für alle Exitcode-fähigen Betriebssystem; selbst wenn ein Exitcode nur 8-bittig sein sollte, ist 255 immer noch möglich. Unter Windows hat der Systemfehlercode 255 aber eine ganz andere Bedeutung: ERROR_EA_LIST_INCONSISTENT - The extended attributes are inconsistent. Das ist irgendein interner Error des File Systems.
Rolf
sumpsi - posui - clusi