web-dev-qa-db-ja.com

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

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

26
Sreerag

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

wmic OS get OSArchitecture

私のシステムの例:

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

コマンドライン:

systeminfo | findstr /I type:

出力例:

システムの種類:X86ベースのPC

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

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

19

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

findstrを使用しても、他の言語バージョンのWindowsではこれが見つかりません。中央ヨーロッパ言語のwin7 osでは、結果に対して...「X86ベース」...を返しますが、それ以外の「タイプ」では何かが探していました。 OSの他の言語バリアントによって異なる可能性があるかどうかはわかりません。

おそらく、「wmic」方式が最も信頼性が高く、OSに直接問い合わせます。

他の可能な迅速な解決策は、変数を調べることです(少なくとも私はwin7で作業しています)。

echo %PROCESSOR_ARCHITECTURE%

わかりました-覚えるのはかなり長いですが、set | findstr Arch覚えられます。

もちろん、システム変数を変更して、wmicよりも信頼性の低いものを変更できる場合もあります。しかし、すぐに使用できます。

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

14
RudyD

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

  • 少なくともWindows 20 以上でプロセッサアーキテクチャを確認する最も速く、最も簡単で、最も互換性のある方法は、_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秒未満で正しい結果が得られます。

Test results

_@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.
_
12
Synetech

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

コマンドプロンプトからのコマンドwmic computersystem get systemtypeの実行

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC
6
SPiRiTS

通常のコマンドライン:wmic OS get OSArchitecture (ちゃんと覚えたら)

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

4
phoebus

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
user31894

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

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

「システムの概要」/「システムの種類」でOSのバージョンを確認できます

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

GUIでのJohnTの回答;)

1
ukanth

[スタート]"[ファイル名を指定して実行]に移動し、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
1

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

:Arch
set p | findstr /i AMD64 > nul
if not errorlevel 1 goto no64
goto eof
:no64
code to execute
:eof
0
Dion