无忧启动论坛

标题: 判断是winxp还是win7系统的批命令 [打印本页]

作者: qj_tzy    时间: 2012-6-10 10:58
标题: 判断是winxp还是win7系统的批命令
除了用批命令判断winxp系统根目录下存在ntldr,win7系统根目录存在bootmgr文件和boot目录外,能否用他法以批命令的形式来判断?

如判断该系统为winxp/win2003,变量systype=nt5x,为winvista/win2008/win7时,该变量=nt6x。

诚请各位指点,谢谢!


感谢各位的指点,问题已得到解决!

[ 本帖最后由 qj_tzy 于 2012-6-13 11:06 编辑 ]
作者: 不才    时间: 2012-6-10 14:43
嘿嘿,试试:
ver | find /i "5." >nul && goto xxxx
......
作者: pznpt    时间: 2012-6-11 14:16
貌似蛮多方法都能实现。
ver
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"|find /i "productname"
systeminfo|find /i "os 名称"
wmic os get name

仅以reg query为例:
---------------------分割线----------------------
@echo off&setlocal enabledelayedexpansion
set "aa=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
for /f "delims=" %%a in ('reg query "!aa!"^|find /i "productname"') do (
  set "str=%%a"
  if not "!str:xp=!"=="!str!" set "systype=nt5x"
  if not "!str:2003=!"=="!str!" set "systype=nt5x"
  if not "!str:vista=!"=="!str!" set "systype=nt6x"
  if not "!str:2008=!"=="!str!" set "systype=nt6x"
  if not "!str:7=!"=="!str!" set "systype=nt6x"
)
echo !systype!
pause
---------------------分割线----------------------
作者: qj_tzy    时间: 2012-6-11 14:18
标题: 回复 #2 不才 的帖子
这个好,谢谢,

对于winvista/win2008/win7应为如下了吧:

ver | find /i "6." >nul && goto nt6x
作者: 527104427    时间: 2012-6-11 14:34
标题: 回复 #4 qj_tzy 的帖子
pznpt那个是搜索注册表的方式

ver | find "5.0" > NUL && echo Windows2000
ver | find "5.1" > NUL && echo WindowsXP
ver | find "5.2" > NUL && echo Windows2003
ver | find "6.0" > NUL && echo WindowsVista
ver | find "6.1" > NUL && echo Windows7
ver | find "6.2" > NUL && echo Windows8

[ 本帖最后由 527104427 于 2012-6-11 14:35 编辑 ]
作者: qj_tzy    时间: 2012-6-11 16:24
标题: 回复 #3 pznpt 的帖子
对注册表不太理解,所以,此批命令看起来有点复杂!
还望指点,谢谢!
作者: qj_tzy    时间: 2012-6-11 16:29
标题: 回复 #5 527104427 的帖子
你的回复更细分了各windows系统的版本,谢谢!
作者: Plantsoot    时间: 2012-6-12 23:44
学习了…………………………




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