Probleme mit System() und bat datei

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit System() und bat datei

    Hey Leute,

    habe ein Problem,

    Ich möchte mittles Button im Forum eine Batch Datei ausführen.

    PHP-Code:
    <?php
    if(isset($_POST['submit']))
    {
    system("cmd /c c:\\test.bat");
    }
    ?>
    leider passiert nichts wenn ich den Button anklicke.

    wenn ich es aber so schreibe

    PHP-Code:
    <?php
    if(isset($_POST['submit']))
    {
    system('start "c:\\test.bat"');
    }
    ?>
    startet er zwar cmd am Webserver aber die Batch datei wird nicht abgearbeitet. Dann irgendwann kommt auf der Forum seite ein interner server fehler 500.


    Was übersehe ich da? Ich denke das der erste Befehl richtig ist aber warum tut sich dann nichts?

    LG Chris

  • #2
    Zitat von Soldize Beitrag anzeigen
    PHP-Code:
    <?php
    if(isset($_POST['submit']))
    {
    system("cmd /c c:\\test.bat");
    }
    ?>
    leider passiert nichts wenn ich den Button anklicke.
    Bist du dir da ganz sicher? Möglicherweise kehrt system() auch nicht zurück, weil der Kommandozeileninterpreter nicht beendet wird.

    wenn ich es aber so schreibe

    PHP-Code:
    <?php
    if(isset($_POST['submit']))
    {
    system('start "c:\\test.bat"');
    }
    ?>
    startet er zwar cmd am Webserver aber die Batch datei wird nicht abgearbeitet. Dann irgendwann kommt auf der Forum seite ein interner server fehler 500.
    Möglicherweise ist der Pfad zur Batch-Datei falsch, eventuell enthält sie Fehler usw. Du kannst system() ein zweites Argument übergeben, dort findest du nach Ausführung den Wert FALSE, falls es Fehler gab. Ansonsten kann auch die Analyse des Rückgabewertes erhellendes bringen. Was sagt ein var_dump(system('start "c:\test.bat"')); ...?
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar


    • #3
      Hallo

      Danke für deine Antwort?

      Wie beende ich den die command Zeile? Hab ehrlich gesagt mit dem System noch nie gearbeitet. Der Pfad stimmt weil ihm taskmanager geht die cmd ja auf nur arbeitet sie die batch nicht ab

      Kommentar


      • #4
        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.
        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

        Kommentar


        • #5
          Die php gibt folgendes zurück: int(1) string(0) ""

          hmmm in den diensten geht keine cmd auf nichts. die bat funktioniert aber wenn ich sie so im remotedesktop doppelklicke.

          Kommentar


          • #6
            Also es liegt definitiv an irgendwelchen einstellungen in der php.ini. leider startet weder eine cmd noch die batch datei. Ich denke es kann nur irgend eine einstellung/rechte nicht passen.

            LG

            Kommentar

            Lädt...
            X