无忧启动论坛

标题: 怎么用批处理获取系统版本号并判断? [打印本页]

作者: icevan    时间: 2014-12-5 01:30
标题: 怎么用批处理获取系统版本号并判断?
for /f "tokens=4 delims=. " %%i in ('ver') do (set ver=%%i)
if %ver% lss 6 (
      goto nt5
) else (
      goto nt6
)
我用了个笨办法来判断的?
还有更好的方法吗?
作者: icevan    时间: 2014-12-5 10:33
本帖最后由 icevan 于 2014-12-5 11:37 编辑

在XP下要出错。
XP下显示的是Microsoft Windows XP [版本 5.1
WIN7下是Microsoft Windows [版本 6.2
重新修改了下


for /f "tokens=2 delims=[]" %%i in ('ver') do (set ver=%%i)
if %ver:~3,3% lss 6 (
      goto nt5
) else (
      goto nt6
)
作者: ku588    时间: 2014-12-5 13:06
本帖最后由 ku588 于 2014-12-5 13:11 编辑

不知道是不是你想要的:

@echo off
for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b
set b=%b:* =%
call:%b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
pause&exit
:5.1.6
echo 系统版本: winxp_32位
goto:eof
:5.2.6
echo 系统版本: win2003_32位
goto:eof
:5.2.4
echo 系统版本: win2003_64位
goto:eof
:6.1.6
echo 系统版本:win7_32位
goto:eof
:6.1.4
echo 系统版本:win7_64或win2008_64位
goto:eof
:6.2.6
echo 系统版本:win8_32位
goto:eof
:6.2.4
echo 系统版本:win8_64或win2012_64位
goto:eof


作者: icevan    时间: 2014-12-5 14:53
本帖最后由 icevan 于 2014-12-5 16:57 编辑

set b=%b:* =%
这句看不懂
只是为了判断NT5和NT6。因为2个系统的很多命令回显不一样。
最终这样:
for /f "tokens=2 delims=[" %%i in ('ver') do (set ver=%%i)
取得版本号
%ver:~3,3%


作者: wuyu12315    时间: 2014-12-8 23:12
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3