Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 03-11-2015, 12:01
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von Soldize Beitrag anzeigen
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.
Mit Zitat antworten