コマンドラインから、現在のバージョンのWindowsが32ビットか64ビットかを確認するにはどうすればよいですか?[複製]


26

OSが32ビットバージョンまたは64ビットWindowsを実行しているかどうかを確認するコマンドラインは何ですか?


どの言語で?
アリックスアクセル

@AlixAxel、よく彼らはコマンドラインを言ったので、おそらく、もしあれば、バッチ。
Synetech

回答:


33

これはWMIで取得できます。

wmic OS get OSArchitecture

私のシステムの例:

C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit

私はこの答えが好きです(WMIコンソールについて学んでください)。;)
Ƭᴇcʜιᴇ00710年

XP?
Synetech

18

コマンドライン:

systeminfo | findstr /I type:

出力例:

システムタイプ:X86ベースのPC

この例では、X86は32ビットシステムを示しています。

/I パラメータは大文字と小文字を区別しない検索を示します


キーストロークのポイントを挙げた後、長くしました。笑:)
Ƭᴇcʜιᴇ007

それは私の答えではありません:P
ジョン・T

2
しかし、「X86ベースのPC」はOSArchitecture 32ビットと同じですか?x64プロセッサで32ビットWin XPを実行できます。
マイケルキャロン

OS言語がドイツ語(または多分englisch以外)である場合は注意してください!systeminfo | findstr /I typ:エントリ全体が次のように変更する必要がありますSystemtyp: x64-based PC
CeOnSql

systeminfo | findstr /C:"System Type"また、同じ情報を取得しますが、長いテキストなのであまり好ましくありません。
-Abhijeet

13

ここでは別の投稿に回答を添付できません。systeminfo- の結果をパイプすることは、かなりの時間をかけてコンソールに書き込みますので、コマンドファイル(バッチスクリプト-とにかくあなたはそれらをB-と呼んでいます)には最適なソリューションではありません。

でもfindstr-他の言語バージョンのWindowsではこれを見つけられません。中央ヨーロッパ言語のwin7 osでは、... "X86ベース" ...も返されますが、その結果は「タイプ」が探していたものとは異なります。OSの他の言語のバリエーションによって異なるかどうかはわかりません。

おそらく「wmic」メソッドが最も信頼性が高い-OSに直接尋ねます。

他の考えられる迅速な解決策は、変数を調べることです(少なくともwin7で動作します)。

echo %PROCESSOR_ARCHITECTURE%

わかりました-覚えておくのはかなり長いですが、可能でset | findstr ARCHあれば覚えることができます。

確かに、システム変数を変更できるものもありますので、wmic。しかし、すぐに使用できます。

私は誰かを助けることができると思います。


この環境変数を見たことがないので(おそらく探したことがないので)、echoコマンドがXPボックスで動作するかどうかはわかりませんでしたが、実際は動作します。シンプルなソリューションの場合は+1。
music2myear

11

Windowsでプロセッサアーキテクチャを確認する方法は多数あります。

  • 少なくともWindows 2000以降でプロセッサアーキテクチャをチェックするための、最も速く、簡単で、最も互換性のある方法は、PROCESSOR_ARCHITECTURE 環境変数を調べることです

    echo %PROCESSOR_ARCHITECTURE%

  • ただし、コマンドプロンプトを開く方法に応じて、異なる結果が得られる場合があります。WoW64よる「予期しない結果」を避けるために、レジストリから直接読み取ることができます(Microsoft はキーに2つ以上のタイプミスを作成しました)。

    reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE

  • Microsoftは、レジストリからハードウェアインフォメーションストアを読み取ることも推奨しています。

    reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier

  • また、Program Filesディレクトリのx86バージョン(またはそれを指す環境変数)の存在を確認することもできます。これは、ディレクトリが64ビットシステム上にのみ存在するためです。PROCESSOR_ARCHITECTURE変数とは異なり、これは、プロンプトの開き方に関係なく、ディレクトリが存在する(または存在しない)ため、コマンドプロンプトの実行方法に依存しません。

    • ::via env-var
      if not defined ProgramFiles(x86) echo 32-bit

    • ::via file-system
      if not exist "%systemdrive%\Program Files (x86)" echo 32-bit

これらの方法は、単一のバッチファイル(例:)で組み合わせることができ、cpuinfo.bat他のプログラムやフレームワークを実行する必要なく、標準のWindows NTコマンドプロンプトからシステムを非常に高速にチェックできます。

以下のバッチファイルは32ビットおよびIntel 64ビットシステムでテストされ(AMD64でテストしてください)、1秒未満で正しい結果が得られます。

試験結果

@echo off

echo PROCESSOR_ARCHITECTURE var:
echo %PROCESSOR_ARCHITECTURE% | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo PROCESSOR_ARCHITECTURE reg:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo CentralProcessor reg:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo ProgramFiles(x86) var:
if not defined ProgramFiles(x86) (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo ProgramFiles(x86) dir:
if not exist "%systemdrive%\Program Files (x86)" (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

5

OSArchitectureプロパティを見つけることができなかった(フィーバスの回答による)のでSystemTypeComputerSystem代わりにプロパティを使用することをお勧めします。

wmic computersystem get systemtypeコマンドプロンプトからコマンドを実行すると、

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC

4

通常のコマンドライン:wmic OS get OSArchitecture (IIRC)

パワーシェル: (gwmi win32_computersystem).SystemType


1
Invalid QueryXPで取得します。
Synetech

1

Windows OSを参照している場合、WMIでvbscriptを使用できます

strComputer = "."    
Set objWMIService = GetObject("winmgmts{impersonationLevel=impersonate,authenticationLevel=Pkt}!\\" & strComputer & "\root\cimv2")    
Set colSettings = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")

For Each objProcessor In colSettings
Wscript.Echo "System Type: " & objProcessor.Architecture
Wscript.Echo "Processor: " & objProcessor.Description
Wscript.Echo "Address Width: "& objProcessor.AddressWidth
Next

1

「システム情報」を使用してその情報を見つけることができます

スタート->実行-> winmsd.exe

「システム概要」/システムタイプの下にOSバージョンがあります

X64-> 64ビット
X86-> 32ビット

GUIでのJohnTの答え;)


1

[スタート]»[実行]に移動し、「」と入力しcmdます。これで、コマンドプロンプトが表示されます。そこでsysteminfo入力してEnter キーを 押します。すべてのシステム情報を取得するには数秒かかります。プロセッサのデータも見つけることができます。

 Processor(s):              1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
  • x86ファミリは、プロセッサが32ビットであることを意味します。
  • x64ファミリとは、プロセッサが64ビットであることを意味します。

C:\ Documents and Settings \ mr85464> systeminfo

OS Name:                   Microsoft Windows XP Professional
OS Version:                5.1.2600 Service Pack 3 Build 2600
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free
Product ID:                76487-640-3658033-23932
Original Install Date:     3/16/2012, 2:03:44 PM
System Up Time:            5 Days, 21 Hours, 35 Minutes, 51 Seconds
System Manufacturer:       Dell Inc.
System Model:              OptiPlex 210L
System type:               X86-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
~2992 Mhz

2
確かに数秒かかります!また、情報をキャッシュしないため、再度実行しても役に立ちません。また、Windowsの更新により、アーキテクチャに関する部分が画面外にすばやくスクロールされるため、十分な大きさのバッファーがない限り、それをにパイプする必要がありますmore
Synetech

0

私が使用した単純なコード:

:arch
set p | findstr /i AMD64 > nul
if not errorlevel 1 goto no64
goto eof
:no64
code to execute
:eof
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.