2016-05-14 5 views
-1

Ich habe eine einfache Frage bekommen:PHP: Wie man ein Batch-Script im Hintergrund laufen zu lassen [Windows]

Wie kann ich eine Batch-Skript im Hintergrund läuft auf einer Fenster Maschine? Ich muss eine Datenbankverbindung mit MySQL über XAMPP herstellen. Dazu muss ich ausführen "mysql_start.bat" und das Problem ist, dass der folgende Code stoppt die Ausführung auf den exec-Befehl von PHP (ich denke, es wartet, bis das Skript beendet ist).

exec("cmd /c C:\\xampp\\mysql_start.bat > tmp.txt 2>&1"); 

Hinweis: die Ausgabe Umleiten ist nicht notwendig, ich habe es gerade ausprobiert, aber auch nicht funktionierte.

Ich habe keine anderen Möglichkeiten gefunden, MySQL zu starten.

Hoffentlich kann mir jemand helfen.

Ihr Michael.

+1

Web-Code sollte nicht in der Regel den Datenbankserver starten müssen, sollte es bereits ausgeführt werden ... –

+0

Haben Sie versucht, beide stdout und stderr umzuleiten? 'exec ('program.exe> ​​NUL 2> NUL')' –

+0

@Alexander O'Mara: Ich weiß. Es ist nur ein Projekt für die Schule. Ich laufe nicht auf einem Server. Aber ich muss den Prozess trotzdem starten ... awons: Wie Sie in meinem Codebeispiel sehen können, habe ich bereits versucht, es in tmp.txt umzuleiten - kein Erfolg. (Ich glaube nicht, dass es einen Unterschied zwischen NUL und einer einfachen TXT-Datei gibt.) –

Antwort

0

Verbergen Sie Ihre Batch-Datei in Windows ausführbar mit "Bat_to_exe Converter" und geben Sie einfach den Pfad entfernen "cmd/c" als Parameter zu exec().

Verwenden Sie auch Ausnahmebehandlungsmethoden oder "die", um zu überprüfen, ob die Funktion einen Fehler zurückgibt.

Verwandte Themen