たまに必要になるんですよね。
コードはこんな感じ。コピペで OK なはず。
if "%PROCESSOR_ARCHITECTURE%" equ "x86" (
:: 32ビット用の処理
echo 32bit
) else (
:: 64ビット用の処理 (AMD64 or IA64)
echo 64bit
)
:: 32ビット用の処理
echo 32bit
) else (
:: 64ビット用の処理 (AMD64 or IA64)
echo 64bit
)
で、いいと思っていたら、厳密には、
if "%PROCESSOR_ARCHITECTURE%" equ "x86" (
:: 32ビットプロセス
if "%PROCESSOR_ARCHITEW6432%" equ "AMD64" (
:: 64ビット環境
) else if "%PROCESSOR_ARCHITEW6432%" equ "IA64" (
:: 64ビット環境
) else (
:: 32ビット環境
)
) else (
:: 64ビットプロセス (64ビット環境)
)
:: 32ビットプロセス
if "%PROCESSOR_ARCHITEW6432%" equ "AMD64" (
:: 64ビット環境
) else if "%PROCESSOR_ARCHITEW6432%" equ "IA64" (
:: 64ビット環境
) else (
:: 32ビット環境
)
) else (
:: 64ビットプロセス (64ビット環境)
)
みたいです。
ただ、バッチファイルなんかで走らせる場合には、上の方法で十分です。(デフォルトでビット数にあったコマンドプロンプトが走るので。)
【 利用サンプル 】
下のコードをテキストファイルにコピーして、拡張子を bat か cmd で保存して実行させれば、簡単に OS のビット数を判定させる事ができます。
@echo off
if "%PROCESSOR_ARCHITECTURE%" equ "x86" (
if "%PROCESSOR_ARCHITEW6432%" equ "AMD64" (
:: 64ビット環境 (32ビットプロセス)
echo 64-bit environment ^(32-bit process^)
) else if "%PROCESSOR_ARCHITEW6432%" equ "IA64" (
:: 64ビット環境 (32ビットプロセス)
echo 64-bit environment ^(32-bit process^)
) else (
:: 32ビット環境 (32ビットプロセス)
echo 32-bit environment ^(32-bit process^)
)
) else (
:: 64ビット環境 (64ビットプロセス)
echo 64-bit environment ^(64-bit process^)
)
pause > nul
if "%PROCESSOR_ARCHITECTURE%" equ "x86" (
if "%PROCESSOR_ARCHITEW6432%" equ "AMD64" (
:: 64ビット環境 (32ビットプロセス)
echo 64-bit environment ^(32-bit process^)
) else if "%PROCESSOR_ARCHITEW6432%" equ "IA64" (
:: 64ビット環境 (32ビットプロセス)
echo 64-bit environment ^(32-bit process^)
) else (
:: 32ビット環境 (32ビットプロセス)
echo 32-bit environment ^(32-bit process^)
)
) else (
:: 64ビット環境 (64ビットプロセス)
echo 64-bit environment ^(64-bit process^)
)
pause > nul
# 参考
0 件のコメント :
コメントを投稿