명령 프롬프트에서 다음을 얻습니다.
>echo %ProgramFiles%
C:\Program Files
그러나 일부 응용 프로그램 (이 경우 PHP는 Apache의 httpd.conf 내에서 동일한 동작을 보았지만)은 다음과 같습니다.
>php -r "echo $_ENV['ProgramFiles'];"
C:\Program Files (x86)
왜 이런거야?
배경 : 호스트 OS가 32 비트 또는 64 비트인지에 관계없이 스크립트를 개발 중이며 구성 파일의 경우 훌륭하게 작동합니다. 32 비트 시스템에서 %ProgramFiles%
"C : \ Program Files"이고 64 비트 시스템에서 동일하게 %ProgramFiles%
리턴 C:\Program Files (x86)
됩니다. Windows 명령 프롬프트 (또는 탐색기 표시 줄 등)에서 시도 할 때 왜 같은 것이 적용되지 않는지 궁금합니다. 64 비트 명령 프롬프트 또는 다른 것이 있습니까?
%programfiles%
돌아갑니다C:\Program Files
. x64 버전의 Windows에서는을%programfiles(x86)
반환합니다C:\Program Files (x86)
. 왜 PHP가 그와 반대되는 것을 반환하는지 확실하지 않지만set
x64 Windows 및 x86 Windows의 명령 프롬프트에서 실행하여 주어진 시스템의 환경 변수가 무엇으로 설정되어 있는지 쉽게 확인할 수 있습니다 .