找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 35309|回复: 12

[系统相关] 批处理如何精确判断当前系统版本

[复制链接]
发表于 2008-11-8 22:50:52 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-16 10:16 编辑

如题.
一般我们碰到的系统包括OS,WIN98,WIN2000,WINXP,WIN2003,VISTA,可能还有WIN2008
要求在批处理程序里判断,然后执行相应语句.

比方说我在DOS下运行这个批处理程序,它能判断出来我是在DOS下运行,并执行DOS下的语句.
我在WINXP下运行,它能判断出来是在WINXP下.


我在可启动U盘里放了一些批处理程序,功能差不多,但在不同的环境下执行的命令不一样.我的目的是判断当前系统环境是DOS还是WIN2000/XP后执行相应的代码,这样就可以少几个文件.

很多批处理程序里的命令可以在WIN2000/XP下执行,但不能在DOS下执行.
发表于 2008-11-8 23:16:40 | 显示全部楼层
ver应该是通用命令吧?
发表于 2008-11-8 23:18:19 | 显示全部楼层
%os%
 楼主| 发表于 2008-11-8 23:20:07 | 显示全部楼层
楼上版主能帮我写个示范吗?
我还在学习阶段,只会写一些简单的批处理.
 楼主| 发表于 2008-11-8 23:21:40 | 显示全部楼层
在WINXP的命令行里输入echo %os%
输出只是Windows_NT
分不清是WIN2000/XP还是VISTA的,只知道是NT核心.
 楼主| 发表于 2008-11-8 23:22:58 | 显示全部楼层
而且纯DOS环境没有这个%os%变量的.
2楼版主说的VER应该可以,但我不会写.
发表于 2008-11-8 23:31:13 | 显示全部楼层
已经不记得DOS下有多少命令可以用的
自己试试
ver|find "7.1"
if %errorlevel%==0 goto dos
...
 楼主| 发表于 2008-11-8 23:42:05 | 显示全部楼层
谢谢版主,明天找个时间写写看.
不行的话,再来请教大家.
发表于 2008-11-9 12:22:57 | 显示全部楼层
  如果只是简单地区分是DOS环境还是Win环境的话就比较好办,并且方法也不只限于ver一种;如果还要知道系统的具体版本的话,那就没什么比较通用的办法了,除非借助第三方命令行工具,比如 string 之类,因为纯DOS下的 for 没有 /f 开关。

  如果只需要区分DOS和Win环境,那么,可以这样做:找个Win环境下有而DOS下没有的命令运行之,然后,通过返回的错误码加以判断,或者直接用&&加||的组合判断。比如:
  1. @echo off
  2. set /p =<nul 2>nul&&echo 是Win环境||echo 是DOS环境
  3. pause
复制代码
 楼主| 发表于 2008-11-9 16:29:56 | 显示全部楼层
  1. @echo off
  2. set /p =<nul 2>nul&&echo 是Win环境||echo 是DOS环境
  3. pause
复制代码
不能在纯DOS下运行的,语法错误.
发表于 2008-11-9 16:47:47 | 显示全部楼层
jm就是通过能否执行set的新特性来区分os的。。。
发表于 2008-11-10 13:16:18 | 显示全部楼层
在各种系统下输入ver,看看结果。
xp下:
Microsoft Windows XP [版本 5.1.2600]
别的不知了。。。。
楼主可以自己测试,用if判断就行了。
发表于 2008-11-13 20:35:18 | 显示全部楼层
用msinfo32.exe试试
  1. start /wait msinfo32.exe /report c:\1.txt /categories swenv+SWENvenvservices &&type c:\1.txt&&del c:\1.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 14:56 , Processed in 0.028976 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表