2015-02-12

コマンドプロンプトで、ビット数分岐する。

コマンドプロンプトで、ビット数判定をしたい時の覚書。

たまに必要になるんですよね。


コードはこんな感じ。コピペで OK なはず。

if "%PROCESSOR_ARCHITECTURE%" equ "x86" (
  :: 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ビット環境)
)

みたいです。

ただ、バッチファイルなんかで走らせる場合には、上の方法で十分です。(デフォルトでビット数にあったコマンドプロンプトが走るので。)


【 利用サンプル 】
下のコードをテキストファイルにコピーして、拡張子を 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


# 参考

0 件のコメント :

コメントを投稿