I would like to know how I can display the location of Program Files (x86) in command prompt. I'm using Windows 7 64bit.
I've tried:
echo %programfiles(x86)%
and echo %programfiles%
,
both of which displays only C:\Program Files
When I manually checked the registry,
HKLM/Software/microsoft/windows/currentversion,
the programfilesdir
points to C:\Program Files
and
HKLM/Software/WOW64/Microsoft/winodws/currentversion,
the programfilesdir
points to C:\Program Files (x86)
.
But, why am I always being displayed with C:\Program Files??
On a 64-bit machine running in 64-bit mode:
echo %programfiles%
==>C:\Program Files
echo %programfiles(x86)%
==>C:\Program Files (x86)
On a 64-bit machine running in 32-bit (WOW64) mode:
echo %programfiles%
==>C:\Program Files (x86)
echo %programfiles(x86)%
==>C:\Program Files (x86)
On a 32-bit machine running in 32-bit mode:
echo %programfiles%
==>C:\Program Files
echo %programfiles(x86)%
==>%programfiles(x86)%
Another relevant environment variable is:
%ProgramW6432%
So, on a 64-bit machine running in 32-bit (WOW64) mode:
- echo %programfiles% ==> C:\Program Files (x86)
- echo %programfiles(x86)% ==> C:\Program Files (x86)
- echo %ProgramW6432% ==> C:\Program Files
From Wikipedia:
The %ProgramFiles% variable points to the Program Files directory, which stores all the installed programs of Windows and others. The default on English-language systems is "C:\Program Files". In 64-bit editions of Windows (XP, 2003, Vista), there are also %ProgramFiles(x86)%, which defaults to "C:\Program Files (x86)", and %ProgramW6432%, which defaults to "C:\Program Files". The %ProgramFiles% itself depends on whether the process requesting the environment variable is itself 32-bit or 64-bit (this is caused by Windows-on-Windows 64-bit redirection).
Reference: http://en.wikipedia.org/wiki/Environment_variable
On a Windows 64 bit machine, echo %programfiles(x86)% does print C:\Program Files (x86)
来源:https://stackoverflow.com/questions/9594066/how-to-get-program-files-x86-env-variable