An einer Eingabeaufforderung erhalte ich Folgendes:
>echo %ProgramFiles%
C:\Program Files
Bei einigen Anwendungen (PHP in diesem Fall, obwohl ich das gleiche Verhalten in Apaches httpd.conf gesehen habe) ist es jedoch:
>php -r "echo $_ENV['ProgramFiles'];"
C:\Program Files (x86)
Warum ist das?
Hintergrund: Ich entwickle Skripte, die unabhängig davon sind, ob das Host-Betriebssystem 32-Bit oder 64-Bit ist, und für Konfigurationsdateien funktioniert dies hervorragend. Auf einem 32 - Bit - System, %ProgramFiles%
ist „C: \ Program Files“, und auf einem 64 - Bit - System , dass gleiche %ProgramFiles%
scheinbar zurückkehrt C:\Program Files (x86)
. Ich bin nur neugierig, warum das nicht gilt, wenn ich es an der Windows-Eingabeaufforderung (oder in der Explorer-Leiste usw.) versuche. Gibt es eine 64-Bit-Eingabeaufforderung oder so?
%programfiles%
zurückC:\Program Files
(in einer Standardkonfiguration von Windows). Gibt unter x64-Versionen von Windows%programfiles(x86)
zurückC:\Program Files (x86)
. Sie sind sich nicht sicher, warum PHP etwas Gegenteiliges zurückgibt, aber Sie können leicht überprüfen, auf welche Umgebungsvariablen für ein bestimmtes System eingestellt ist, indem Sieset
eine Eingabeaufforderung unter x64 Windows und x86 Windows ausführen.