如何使用命令确定我的 Windows 是 32 位还是 64 位?

Neg*_*ive 89 windows command-line

可能的重复项:
如何判断计算机是否具有 64 位 CPU 或操作系统
在 CLI操作系统版本中检测 Windows Server 版本 32/64 位
:32 位还是 64 位?

如何从命令行确定我的 Windows 系统是 32 位还是 64 位?

我想知道操作系统的位数,而不是硬件。

这个问题仅适用于命令行,我不想要任何 GUI 解决方案。

Shi*_*rai 140

在提升的命令提示符下,键入wmic os get osarchitecture. 我认为输出非常明显 - 它会返回“32 位”或“64 位”。

  • 或者,如果您使用的是 W7 机器或其他安装了 PS 的 Windows 操作系统,则在 Powershell 中执行相同的操作:(gwmi win32_OperatingSystem).OSArchitecture (2认同)
  • 不适用于 Windows XP。返回错误:无效查询。 (2认同)
  • 警告:**必须**是管理员才能运行 WMIC。 (2认同)

Ben*_*rds 62

systeminfo 控制台程序将显示这一点。您将需要查找“系统类型:”行。对于 32 位系统,它会说“x86-based PC”。对于 64 位系统,它会说“x64-based PC”。

或者,为了更快的方法,您可以简单地检查 PROCESSOR_ARCHITECTURE 环境变量。64 位系统会说 AMD64,32 位系统应该说“x86”。要检查这一点,您可以简单地将其回显:

echo %PROCESSOR_ARCHITECTURE%
Run Code Online (Sandbox Code Playgroud)

MSDN 博客上的 David Wang 对此HOWTO 进行了扩展:检测进程位数

  • 如果您在 64 位系统上运行 32 位操作系统,%PROCESSOR_ARCHITECTURE% 仍将是“x86”。在大多数情况下,64 位操作系统可以运行 32 位程序,但反过来*不行*。 (5认同)
  • 这不是显示处理器类型,而不是安装的操作系统类型吗? (2认同)
  • 赞成投票,因为 **echo %PROCESSOR_ARCHITECTURE%** 甚至在 sql server 命令外壳中也能工作。因为 **wmic os get osarchitecture** 有时在 sql server 命令外壳中不起作用 (2认同)

Bre*_*ugh 8

您可以检查是否%PROGRAMFILES(x86)%声明了环境变量。在 32 位系统上,它不会被定义(只会被定义%PROGRAMFILES%)。这也比检查 Program Files (x86) 目录是否存在更安全,因为它可以被移动(甚至删除)。


MaQ*_*eod 8

我编写了一个简单的命令行应用程序,它会告诉您您的处理器和操作系统是 64 位还是 32 位。

读数示例:

C:\bitchecker
The CPU is 64-bit and the OS is 32-bit
Run Code Online (Sandbox Code Playgroud)

每个请求,这里是使用 CLI 选项编译的源代码,用 AutoIt 编写。

If @CPUARCH = "x86" Then
    $CPUARCH = "32-bit"
Else
    $CPUARCH = "64-bit"
EndIf

If @OSARCH = "x86" Then
    $OSARCH = "32-bit"
Else
    $OSARCH = "64-bit"
EndIf

ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
Run Code Online (Sandbox Code Playgroud)

如果您想要 CPU (-c) 和 OS (-o) 的开关,这里是一个示例:

Dim $CPUARCH, $OSARCH

If @CPUARCH = "x86" Then
    $CPUARCH = "32-bit"
Else
    $CPUARCH = "64-bit"
EndIf

If @OSARCH = "x86" Then
    $OSARCH = "32-bit"
Else
    $OSARCH = "64-bit"
EndIf

If $CmdLine[0] = 0 Then
    ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
Else
    Select
        Case $CmdLine[1] = "-c"
            ConsoleWrite($CPUARCH)
        Case $CmdLine[1] = "-o"
            ConsoleWrite($OSARCH)
        Case Else
            ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
    EndSelect
EndIf
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

311328 次

最近记录:

4 年,6 月 前