Dari prompt perintah, saya mendapatkan yang berikut:
>echo %ProgramFiles%
C:\Program Files
Namun, beberapa aplikasi (PHP dalam contoh ini, meskipun saya telah melihat perilaku yang sama dari dalam httpd.conf Apache), yaitu:
>php -r "echo $_ENV['ProgramFiles'];"
C:\Program Files (x86)
Kenapa ini?
Latar Belakang: Saya sedang mengembangkan skrip yang agnostik dari OS host menjadi 32bit atau 64bit, dan untuk file konfigurasi ini berfungsi dengan baik. Pada sistem 32bit, %ProgramFiles%
adalah "C: \ Program Files", dan pada sistem 64bit yang %ProgramFiles%
tampaknya sama kembali C:\Program Files (x86)
. Saya hanya ingin tahu mengapa hal yang sama tidak berlaku ketika saya mencobanya dari command prompt Windows (atau di bar explorer, dll.). Apakah ada command prompt 64bit atau sesuatu?
%programfiles%
kembaliC:\Program Files
(pada konfigurasi default Windows). Pada versi x64 Windows,%programfiles(x86)
kembaliC:\Program Files (x86)
. Tidak yakin mengapa php mengembalikan sesuatu yang bertentangan dengan itu, tetapi Anda dapat dengan mudah memverifikasi variabel lingkungan untuk sistem tertentu diatur dengan menjalankanset
dari prompt perintah pada x64 Windows dan x86 Windows.