Zitat:
Zitat von Soldize
Wie beende ich den die command Zeile?
|
Direkt von PHP aus gar nicht. Wenn du "start" benutzt, um deine Batch-Datei auszuführen, wird immer ein Kommandozeilenfenster offen bleiben, das du von Hand schließen must. Erst dann kehrt system() ins PHP-Script zurück. Deswegen bekommst du damit nach einer gewissen Zeit eine Fehlermeldung.
Mit "cmd /C ..." kehrt system() direkt zurück. Du kannst auf diesem Weg aber nicht mehr vernünftig auswerten, was während der Ausführung der Batch-Datei geschah: eventuell auftretende Fehler beispielsweise. Es ist auch unnötig, diesen Umweg zu gehen, denn system() startet sowieso einen Kommandozeileninterpreter. Es geht auch ohne "cmd":
PHP-Code:
$last_line = system('C:\test.bat', $return);
var_dump($return); // int(0) im Erfolgsfall
var_dump($last_line); // FALSE im Fehlerfall
Wenn jetzt das Script "hängt", liegts an den Innereien der Batch-Datei. Wenn die korrekt ist, kehrt irgendeines der darin aufgerufenen Programme nicht zurück.