如何使用Windows批处理脚本识别OS是64位还是32位?

时间:2019-05-16 20:36:07

标签: windows batch-file scripting windows-scripting

  

TL; DR:我需要一段代码来识别窗口的“位”,并将其放入一个名为“ bit”的变量中,而无需任何用户输入。

当前,我正在使用:

set /P choice=32 bit system? [Y/N]

    if /I "%choice%" EQU "Y" (
        :: 32 bit code
    ) else (
        :: 64 bit code
    )

但是,无论用户运行的是32/64位命令提示符还是那里的计算机,我都希望能识别出用户是否正在使用32/64位系统。在帖子here中,仅回答了如果您运行正确位的CMD版本该如何做。

Compo是网站上的用户,过去曾帮助我确定用户正在运行的Windows版本,从而大大减少了用户输入的数量;但是,我仍然没有找到针对Windows“位”的干净解决方案。

1 个答案:

答案 0 :(得分:3)

怎么样:

if "%PROCESSOR_ARCHITECTURE%" EQU "x86" (
    rem 32 bit
) else (
    rem 64 bit
)

如果有人在64位系统上运行32位命令提示符(即使操作系统是64位,它将标识为32位),这会带来一点复杂,但这可以使用以下方法解决:

if "%PROCESSOR_ARCHITECTURE%" EQU "x86" (
    if "%PROCESSOR_ARCHITEW6432%" EQU "AMD64" (
        rem 64 bit OS, but running a 32 bit command prompt
    ) else (
        rem 32 bit OS
    )
) else (
    rem 64 bit OS
)