如何获得程序文件的x86环境variables?

我想知道如何在命令提示符下显示程序文件(x86)的位置。 我正在使用Windows 7 64位。

我试过了:

echo %programfiles(x86)%echo %programfiles%
两者都只显示C:\Program Files

当我手动检查registry时,
HKLM / Software / microsoft / windows / currentversion
programfilesdir指向C:\Program Files

HKLM / Software / WOW64 / Microsoft / winodws / currentversion
programfilesdir指向C:\Program Files (x86)

但是,为什么我总是用C:\ Program Files文件显示?

在以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)

另一个相关的环境variables是:

%ProgramW6432%

所以,在一个以32位(WOW64)模式运行的64位机器上:

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

维基百科 :

%ProgramFiles%variables指向Program Files目录,该目录存储所有已安装的Windows及其他程序。 英文系统的默认值是“C:\ Program Files”。 在Windows(XP,2003,Vista)的64位版本中,还有%ProgramFiles(x86)%,默认为“C:\ Program Files(x86)”和%ProgramW6432%,默认为“C: \ Program Files“。 %ProgramFiles%本身取决于请求环境variables的进程本身是32位还是64位(这是由Windows-on-Windows 64位redirect引起的)。

参考: http : //en.wikipedia.org/wiki/Environment_variable

在Windows 64位计算机上,echo%programfiles(x86)%会打印C:\ Program Files(x86)

我尝试了在networking上发现的多种变化,而且没有任何变化。 我正在尝试解决与Subtitle Creator的注册问题。

经过一些试验和错误,这是在Windows 7 64位下为我工作的一个。

  1. 在Windows开始菜单中,在search框中键入CMD。
  2. 用鼠标右键单击该cmd.exe并select以pipe理员身份运行。
  3. 如果出现提示,请inputpipe理员密码。
  4. 现在使用这个命令:%systemroot%\ SysWoW64 \ regsvr32“C:\ Program Files(x86)\ SubtitleCreator \ SCSubtitleFilter.ax”

如果你正在修复一个不同的DLL,你需要使用引号内的DLL的完整path。