web-dev-qa-db-ja.com

プログラムファイルx86環境変数を取得する方法?

コマンドプロンプトでプログラムファイル(x86)の場所を表示する方法を知りたいです。 Windows 7 64ビットを使用しています。

私はもう試した:

echo %programfiles(x86)%およびecho %programfiles%
どちらもC:\Program Filesのみを表示します

レジストリを手動で確認したとき、
HKLM/Software/Microsoft/windows/currentversion
programfilesdirC:\Program Filesを指し、

HKLM/Software/WOW64/Microsoft/winodws/currentversion
programfilesdirC:\Program Files (x86)を指します。

しかし、なぜC:\ Program Filesで常に表示されるのですか??

101
Ashok

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)%
165
SecurityMatt

別の関連する環境変数は次のとおりです。

%ProgramW6432%

したがって、32ビット(WOW64)モードで実行されている64ビットマシンでは:

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

From Wikipedia

%ProgramFiles%変数は、Windowsなどのインストールされているすべてのプログラムを格納するProgram Filesディレクトリを指します。英語システムのデフォルトは「C:\ Program Files」です。 64ビット版のWindows(XP、2003、Vista)には、デフォルトで「C:\ Program Files(x86)」となる%ProgramFiles(x86)%と、デフォルトで「C: \プログラムファイル"。 %ProgramFiles%自体は、環境変数を要求するプロセス自体が32ビットであるか64ビットであるかによって異なります(これはWindows-on-Windows 64ビットリダイレクトが原因です)。

リファレンス: http://en.wikipedia.org/wiki/Environment_variable

30
Vini

Windows 64ビットマシンでは、エコー%programfiles(x86)%はC:\ Program Files(x86)を印刷します

3