2012/08/29

32bitアプリから呼び出された場合の%PROCESSOR_ARCHITECTURE%

アプリケーションが64ビットで動いているか調べる、OSが64ビットか調べる: .NET Tips: C#, VB.NET
WOW64上の32ビットプロセスでは、PROCESSOR_ARCHITECTURE に"x86"が設定されます。この時、本来の PROCESSOR_ARCHITECTURE の値は、PROCESSOR_ARCHITEW6432 に設定されます。なお PROCESSOR_ARCHITEW6432 はWOW64でのみ使用されます。

ということで、32bitのアプリから呼び出されたcmdでは
IF %PROCESSOR_ARCHITECTURE%==AMD64 なんちゃら~
というbatを書いてもうまく働きません
というわけで
IF %PROCESSOR_ARCHITECTURE%==AMD64 (
64bitなかんじ
) ELSE (
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" (
64bitなかんじ
) ELSE (
32bitなかんじ
)
)

こんなのでどうでしょう。

0 件のコメント:

コメントを投稿