環境変数%PROGRAMFILES(x86)%
を32ビットのWindows OS(つまり、Windows XP、Vistaなどの古いバージョンのWindows)で使用するとどうなりますか?
私はそれが単に解決されることを望んでいます:C:/Program Files
。これは起こりますか?
これに 環境変数%PROGRAMFILES(x86)%
は、64ビットシステムでのみ使用可能です。
ただし、64ビットシステムで_%PROGRAMFILES%
_を使用する場合、結果は、環境変数を要求するプロセスが32ビットか64ビットかによって異なります。
したがって、64ビットシステム上の64ビットプロセスから_C:\Program Files
_を取得し、64ビットシステム上の32ビットプロセスからC:\Program Files (x86)
を取得し、32- 32ビットシステムのビットプロセスでは、_C:\Program Files
_が返されます。
これで解決しない場合は、元の質問をコメントしたり編集したりして、何をしようとしているのか具体的にすることができます。現在のところ、あなたの質問に対する答えは「いいえ」です。
%ProgramFiles(x86)%
はWindows 7 32ビットでは定義されていないので、私が思いついた回避策は次のとおりです。
SET MyPath="%ProgramFiles(x86)%\MyFolder\MyApplication.exe"
rem workaround for Windows7 32 bit:
IF NOT DEFINED ProgramFiles(x86) SET MyPath="%PROGRAMFILES%\MyFolder\MyApplication.exe"
使用例:インストールされているバッチファイルからアプリケーションを呼び出したい:
こちらです %MyPath%
は常に正しいパスを指します。