• 締切済み

OSのビットサイズを取得したいのですが・・・

コマンド プロンプトで現在このPCで動いているOS(Windows 7)のビットサイズを変数に取得する必要があります。 コンピューターのプロパティで表示されますが、これでは変数に自動的に代入されないので、プログラム処理ができません。 SET コマンドでは、CPUのサイズが分かってもOSのビットサイズはわかりません。 SET コマンドで表示される中に ProgramW6432=C:\Program Files の記述があれば、64ビットOSが動いていると考えたいのですが、32ビットOSで動いているPCを持っていないので、比較ができません。 ご存知の方のアドバイスをお願いします。

みんなの回答

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.3

Windows7 でよければ下記に取得方法が載っています。 http://okwave.jp/qa/q7202195.html 「バッチ os bit判定」などで検索すればいろいろな情報が見つかります。

Agusuke
質問者

補足

samtomsanさん、回答ありがとうございます。ご指摘のページで ANo.3 の方法2 は、PROCESSOR_ARCHITECTURE なので使用方法の誤りですね。 方法1は、他の回答者の回答にもあり、正解ですが私としては選択したくありません。

  • 8ive22ty
  • ベストアンサー率52% (770/1479)
回答No.2

wmicコマンドで下記のパラメータを使用して適当なファイルにリダイレクトして, バッチ処理でファイルから取り込めばいいでしょう。 wmic os get osarchitecture

Agusuke
質問者

補足

8ive22tyさん、回答ありがとうございます。ご提案の手法のほうが Systeminfo より出力が短くてよいですね。No.1の回答者へのコメントに記載しましたが、とりあえず Windows 8 はOK と考え既定方針で進め、3年先に Windows 9 を確認して対応したいと考えています。

  • parts
  • ベストアンサー率62% (6366/10151)
回答No.1

正確にプラットフォームを判断するなら、systeminfoでx64-based PCとなっていれば、64bitです。 x86なら32bitです。この内容をFindで取り出すか、またはFindstrで検索しあれば、条件分岐で64bitと判断させるという手もある。 尚、Program Filesの記述は、今はそれで判断しても良いが、将来的のOSにもそのコマンドを使うことがあるなら、望ましい方法ではないかもしれません。Program Filesの変数情報はプラットフォームの種類を示すものではないですから。

Agusuke
質問者

補足

partsさん、回答ありがとうございます。Systeminfo を使うとなると、Systeminfo の出力をリダイレクトし、Find して処理するなど、処理が複雑になりますね。 ProgramW6432 の記述は、32ビット OSの環境変数(SysWow64 フォルダーから類推です)には絶対ないと思ったのですが、ご意見を聞かせてください。 将来のOS については、とりあえずWindows 8 の RC 版で確認してみる必要がありますね。これもとりあえずで、Windows 9 以降での保証はありませんが・・・ 現在 Windows 7 Ultimate x86 のPCに x86 OS をインストール中です。 ProgramW6432 の記述がなければ、とりあえず既定方針で処理を進める覚悟です。

関連するQ&A