Vinzenz: PHP starten über .bat

Beitrag lesen

Hallo Michimu,

versuche schon seit einiger Zeit ein PHP über eine .bat-Datei zu starten bzw. versuche ich mich da erstmal zu informieren und experementiere noch. Habe schon einige Einträge hier und auch wo anders wo gelesen, aber werde daraus einfach nicht schlau.

Ich nehme an, dass Du eine Windows Version im Einsatz hast. Welche?
Ich nehme an, dass Du PHP installiert hast. Welche Version genau? Du solltest mindestens PHP 4.3.0 im Einsatz haben (ok, ich weiß, dass es CLI bereits bei 4.2.0 gab), siehe http://www.php.net/manual/de/features.commandline.php.
Hast Du das CLI auch installiert? Ich weiß, dass es bei diversen Komplettpaketen für Windows fehlt.

Oben angeführter Link hilft Dir auch sonst weiter

Daher einfach nochmal meine Frage: Wie kann ich über eine .bat-Datei ein PHP starten. Es werden auch keine Parameter erwartet im php.

Annahme: Windows XP
PHP: 4.3.x, installiert nach C:\PHP\ php.exe (CLI-Version) liegt in C:\PHP\CLI\php.exe
Das Verzeichnis C:\PHP\CLI ist nicht in der Umgebungsvariable PATH enthalten

Dein Skript heißt deinskript.php und liegt in D:\Skripte\PHP\deinskript.php

1. Du kannst eine Batchdatei schreiben, die genau mit Deinem Skript funktioniert:

Name der Datei: ein_aussagekraeftiger_name.bat oder ein_aussagekraeftiger_name.cmd

Inhalt:

REM Aufruf in der naechsten Zeile startet das PHP-Skript
C:\PHP\CLI\php.exe D:\Skripte\PHP\deinskript.php

REM Das war es schon

Aufruf: ein_aussagekreaeftiger_name

Wenn diese Version läuft, wagst Du Dich an die nächstschwierigere Variante:

2. Du kannst eine Batchdatei schreiben, die mit allen Skripten funktioniert

Inhalt:

C:\PHP\CLI\php.exe %1

Aufruf bei dieser Lösung mit

ein_aussagekraeftiger_name D:\Skripte\PHP\deinskript.php

Anmerkung: Selbstverständlich solltest Du als sorgfältiger Entwickler bei der zweiten Version eine Fehlerbehandlung einbauen:

  1. Überprüfung der übergebenen Parameter
  2. Überprüfung, ob der übergebene Parameter eine vorhandene Datei ist
    ...

Freundliche Grüsse,

Vinzenz

Vinzenz