## PHP auf Windows-Systemen auf der Kommandozeile ausführen

Dieser Abschnitt enthält Hinweise und Tipps, wie man PHP unter Windows auf der Befehlszeile zum Laufen bringt.

> Hinweis:

> Lesen Sie zuerst die Anleitung für die manuelle Installation!

PHP kann ohne Änderungen an Windows von der Kommandozeile aus gestartet werden.

    C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

Mit ein paar kleinen Maßnahmen lässt sich dies jedoch vereinfachen. Einige dieser Maßnahmen sollten bereits durchgeführt worden sein, werden aber hier wiederholt, um eine vollständige Schritt-für-Schritt-Anleitung zu geben.

> Hinweis:

> Sowohl PATH als auch PATHEXT sind wichtige, bereits existierende Windows-Systemvariablen, und es sollte darauf geachtet werden, keine der beiden Variablen zu überschreiben, sondern sie nur zu ergänzen.

- Ergänzen Sie die Umgebungsvariable PATH um den Ort der ausführbaren PHP-Datei (php.exe, php-win.exe oder php-cli.exe, abhängig von der PHP-Version und den Einstellungen für die Anzeige). Wie Sie das PHP-Verzeichnis zu PATH hinzufügen können, erfahren Sie im entsprechenden FAQ-Eintrag.

- Ergänzen Sie die Umgebungsvariable PATHEXT um die Erweiterung `.PHP`. Dies kann zusammen mit der Änderung der Umgebungsvariablen PATH erledigt werden. Befolgen Sie die in den FAQ beschriebenen Schritte, aber ändern Sie die Umgebungsvariable PATHEXT und nicht die Umgebungsvariable PATH.

  > Hinweis:

  > Die Position, an der das `.PHP` platziert wird, bestimmt, welches Skript oder Programm ausgeführt wird, wenn es übereinstimmende Dateinamen gibt. Wenn Sie `.PHP` zum Beispiel vor `.BAT` platzieren, wird bei einer gleichnamigen Batch-Datei das Skript ausgeführt und nicht die Batch-Datei.

- Verknüpfen Sie die Erweiterung `.PHP` mit einem Dateityp. Dazu führen Sie den folgenden Befehl aus:

      assoc .php=phpfile

- Verknüpfen Sie den Dateityp `phpfile` mit der entsprechenden ausführbaren PHP-Datei. Dazu führen Sie den folgenden Befehl aus:

      ftype phpfile="C:\php\php.exe" -f "%1" -- %~2

Wenn Sie diese Schritte befolgen, können PHP-Skripte von jedem Verzeichnis aus ausgeführt werden, ohne dass Sie die ausführbare PHP-Datei oder die Erweiterung `.PHP` eingeben müssen. Darüber hinaus können Sie Parameter angeben, die an das Skript übergeben werden.

Im folgenden Beispiel sind einige der Änderungen in der Registry aufgeführt, die manuell vorgenommen werden können.

Beispiel #1 Änderungen in der Registry

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
    @="phpfile"
    "Content Type"="application/php"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
    @="PHP Script"
    "EditFlags"=dword:00000000
    "BrowserFlags"=dword:00000008
    "AlwaysShowExt"=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
    @="C:\\php\\php-win.exe,0"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
    @="Open"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
    @="&Open"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
    @="\"C:\\php\\php.exe\" -f \"%1\" -- %~2"

Mit diesen Änderungen kann derselbe Befehl wie folgt geschrieben werden:

    "C:\PHP Scripts\script" -arg1 -arg2 -arg3

oder, wenn das Verzeichnis `"C:\PHP Scripts"` in der Umgebungsvariablen PATH steht:

    script -arg1 -arg2 -arg3

> Hinweis:

> Wenn diese Technik verwendet werden soll, um PHP-Skripte als Befehlszeilenfilter zu nutzen, wie im folgenden Beispiel, gibt es ein kleines Problem:

>     dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3

> oder

>     dir | script -arg1 -arg2 -arg3

> Es kann vorkommen, dass das Skript einfach hängen bleibt und nichts ausgibt. Um dies zu beheben, muss eine weitere Änderung in der Registry vorgenommen werden.

>     Windows Registry Editor Version 5.00

>     [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
>     "InheritConsoleHandles"=dword:00000001

> Weitere Informationen zu diesem Problem finden Sie im » Microsoft Knowledgebase Article : 321788. Ab Windows 10 scheint diese Einstellung geändert worden zu sein, sodass die Standardinstallation von Windows 10 geerbte Konsolen-Handles automatisch unterstützt. Dieser » Microsoft-Forenbeitrag liefert die Erklärung.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open