프로그램 파일 x86 환경 변수를 얻는 방법?


108

명령 프롬프트에서 프로그램 파일 (x86)의 위치를 ​​표시하는 방법을 알고 싶습니다. Windows 7 64 비트를 사용하고 있습니다.

난 노력 했어:

echo %programfiles(x86)%echo %programfiles%,
둘 다C:\Program Files

나는 레지스트리를 수동으로 선택하면
HKLM / 소프트웨어 / 마이크로 소프트 / 윈도우 / CurrentVersion , 포인트 및
programfilesdirC:\Program Files

HKLM / 소프트웨어 / WOW64 / 마이크로 소프트 / winodws / CurrentVersion을 , 포인트 .
programfilesdirC:\Program Files (x86)

하지만 왜 항상 C : \ Program Files로 표시됩니까 ??


10
진짜 질문은 왜 윈도우 7과 윈도우 xp 모두에서 x86을 가리키는 % programfiles % 버전이 존재하지 않는지 생각합니다. 예를 들어 XP에 Debugging Tools for Windows (x86)를 설치 한 후 Program Files에서 찾을 수 있지만 Windows 7에서는 Program Files (x86)에서 찾을 수 있으므로 모든 컴퓨터에 배포 할 수있는 명령 파일을 만드는 간단한 방법이 없습니다. 기본 제공 환경 변수가 일관되게 Program Files의 32 비트 위치를 가리 키지 않기 때문입니다.
dj69

답변:


178

64 비트 모드로 실행되는 64 비트 시스템 :

  • echo %programfiles% ==> C:\Program Files
  • echo %programfiles(x86)% ==> C:\Program Files (x86)

32 비트 (WOW64) 모드로 실행되는 64 비트 시스템 :

  • echo %programfiles% ==> C:\Program Files (x86)
  • echo %programfiles(x86)% ==> C:\Program Files (x86)

32 비트 모드로 실행되는 32 비트 컴퓨터 :

  • echo %programfiles% ==> C:\Program Files
  • echo %programfiles(x86)% ==> %programfiles(x86)%

18
32 비트 모드의 32 비트 컴퓨터에서 어떤 % programfiles (x86) %가 반환됩니까?
Ivan Kochurkin 2014 년

Windows XP (x86)에서 작동하지 않는 경우 % programfiles %를 넣어야합니다. 유일한 방법은 먼저 OS 버전을 코드로 확인한 다음 하나 또는 다른 변수를 사용하는 것입니다.
gsubiran 2014

3
위 목록에 % ProgramW6432 %를 추가하는 것이 좋습니다.
Alex Wiese

2
더 %의 PROGRAMFILES (86) % 환경 변수가없는 - 같은 윈도우 7의 32 비트 버전에 적용
badsamaritan

1
두 번째로 @Alex Wiese, % ProgramW6432 %는 항상 64 비트 프로그램 파일 디렉토리를 갖게됩니다. % ProgramFiles (x86) %에는 항상 32 비트 프로그램 파일 디렉토리가 있습니다. 이 두 변수는 안정적입니다. 나머지는 64 비트 OS (또는 명령 프롬프트)가 실행중인 모드에 따라 변경 될 수 있습니다.
Jason

36

또 다른 관련 환경 변수는 다음과 같습니다.

% 프로그램 W6432 %

따라서 32 비트 (WOW64) 모드로 실행되는 64 비트 컴퓨터에서 :

  • echo % programfiles % ==> C : \ Program Files (x86)
  • echo % programfiles (x86) % ==> C : \ Program Files (x86)
  • echo % ProgramW6432 % ==> C : \ Program Files

에서 위키 백과 :

% ProgramFiles % 변수는 Windows 및 기타의 설치된 모든 프로그램을 저장하는 Program Files 디렉터리를 가리 킵니다. 영어 시스템의 기본값은 "C : \ Program Files"입니다. 64 비트 버전의 Windows (XP, 2003, Vista)에는 "C : \ Program Files (x86)"로 기본 설정되는 % ProgramFiles (x86) %와 기본적으로 "C :"로 설정되는 % ProgramW6432 %도 있습니다. \프로그램 파일". % ProgramFiles % 자체는 환경 변수를 요청하는 프로세스 자체가 32 비트인지 64 비트인지에 따라 다릅니다 (Windows-on-Windows 64 비트 리디렉션으로 인해 발생 함).

참조 : http://en.wikipedia.org/wiki/Environment_variable


3
더 나은 참조 : MSDN : WOW64 구현 세부 정보 - "Windows 7 및 Windows Server 2008 R2부터 ProgramW6432 및 CommonProgramW6432 환경 변수가 추가되었습니다." Wikipedia는 이에 직접적으로 모순됩니다. 흥미롭게도 Wikipedia 는 MSDN에 따라이 변수를 지원 하지 않는 세 가지 버전 만 나열합니다 . 불행히도 테스트 할 64 비트 XP / Vista가 없습니다.
Lexikos

1
두 번째 읽기에서 Windows 7/2008 R2 요구 사항이 64 비트 프로세스에만 적용되는 것을 확인했습니다. 변수는 Vista x64의 32 비트 프로세스에 대해서만 정의됩니다.
Lexikos


0

IMHO,이 토론에서 누락 된 한 가지 점은 어떤 변수를 사용하든 항상 적절한 폴더를 가리킬 것이라는 것입니다. 이것은 Windows가 C : \ 이외의 드라이브에 설치된 드문 경우에 중요합니다.


이것은 좋은 메모입니다. 그러나 질문에 직접 답하는 것이 아니기 때문에 질문 자체에 대한 주석으로 작성하는 것이 더 좋았을 것입니다.
AbstractVoid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.