落红护花 发表于 2020-9-5 13:45

批处理bat获取系统版本及位数

突发奇想想做一个安装一款游戏的批处理,过程中遇到了要获取Windows系统版本及位数的问题,顺便查了一下各个版本的版本号,如下

图片中少了个Windows 10{:301_1004:}Windows 10的版本号是10.0
批处理中用 ver | find 命令可以查找版本号,so,如下




在此只提供了几个常用系统检测,具体大家可以再钻研一下{:301_1002:}

接下来就是获取系统位数了,x%PROCESSOR_ARCHITECTURE:~-2% 命令可以直接获取系统位数


全部代码如下



@echo off
if /i not "%os%"=="Windows_NT" (set TheOS=非Windows系统&set TheBit=) else (
ver | find "4.0" > nul && set TheOS=Windows 95
ver | find "4.10"> nul && set TheOS=Windows 98
ver | find "4.90"> nul && set TheOS=Windows me
ver | find "3.51"> nul && set TheOS=Windows NT35
ver | find "5.0" > nul && set TheOS=Windows 2000
ver | find "5.1" > nul && set TheOS=Windows XP
ver | find "5.2" > nul && set TheOS=Windows 2003
ver | find "6.0" > nul && set TheOS=Windows Vista
ver | find "6.1" > nul && set TheOS=Windows 7
ver | find "6.2" > nul && set TheOS=Windows 8
ver | find "10.0"> nul && set TheOS=Windows 10
set TheBit=x%PROCESSOR_ARCHITECTURE:~-2%
)
echo 您的系统版本:%TheOS% %TheBit%
pause

如果想要根据位数来跳转,需要 if 语句来判断位数

@echo off
set bit=x%PROCESSOR_ARCHITECTURE:~-2%
if "%bit%"=="x64" (goto 64) else goto 32
:64
echo 64
pause
:32
echo 32
pause

如果想要根据系统来跳转,和位数相似

@echo off
ver | find "6.1" > nul && set TheOS=Windows 7
ver | find "6.2" > nul && set TheOS=Windows 8
ver | find "10.0"> nul && set TheOS=Windows 10
if "%TheOS%"=="Windows 10" (goto 10)
if "%TheOS%"=="Windows 7" (goto 7)
if "%TheOS%"=="Windows 8" (goto 8)
:10
echo win10
pause

以此类推
希望能对大家有用
{:301_975:}
新人发帖,有违规请告知并删帖,谢谢{:301_974:}

行云丶尘伤 发表于 2020-9-5 16:09

不明觉厉...懂编程的都是牛人

旋风中的小聪明 发表于 2020-9-5 16:27

行云丶尘伤 发表于 2020-9-5 16:09
不明觉厉...懂编程的都是牛人

这是脚本,不是编程

余钦 发表于 2020-9-5 16:37

可以续写成在局域网获取Windows系统版本并保存至ftp中的
页: [1]
查看完整版本: 批处理bat获取系统版本及位数