中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-09-28 10:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 在脚本里如何区分运行的环境是xp还是vista? 查看 1,227 回复 9
楼 主 在脚本里如何区分运行的环境是xp还是vista? 发表于 2007-11-13 14:58 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
18年会员
UID 99881
性别 男
状态 离线
好像没有一个环境变量暗示这个。。有好方法吗?3x
第 2 楼 发表于 2007-11-13 15:23 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
21年会员
UID 44210
状态 离线
用for获取ver内容
第 3 楼 发表于 2007-11-13 23:32 ·  中国 湖南 衡阳 电信
新手上路
★
积分 7
发帖 4
注册 2007-11-13 22:47
18年会员
UID 102600
性别 男
状态 离线
没人回答么 我也遇到了这个问题
第 4 楼 发表于 2008-06-24 07:57 ·  中国 重庆 璧山区 电信
新手上路
★
积分 14
发帖 6
注册 2008-01-14 22:35
18年会员
UID 108626
性别 男
状态 离线
顶一顶 我也需要?
第 5 楼 发表于 2008-06-24 08:58 ·  中国 江苏 苏州 常熟市 电信
高级用户
★★
五星老土
积分 558
发帖 172
注册 2003-02-09 00:00
23年会员
UID 881
性别 男
来自 江苏
状态 离线
没用过VISTA,但可以照以下思路试试看。

1.VISTA 和 XP环境变量是否完全一样,只要有一个不一样,那么就可以判定
2.VISTA 是否比XP多了或者少了默认变量, 如果是, 可以用 IF DEFINED %变量% 判定
3.文件判定法, 找一个VISTA 肯定有的而XP 肯定没有的特定文件判断, 反之亦然.
我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
第 6 楼 发表于 2008-06-24 09:16 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
2楼不是说的很清楚了吗?用ver就行了。
第 7 楼 发表于 2008-06-24 09:53 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
没办法,非得要给出代码:

@echo off
set /p a=你想知道当前系统环境吗?(1.想 2.不想)
if "%a%" neq "1" goto :eof
cls&set /p b=你确实想知道吗?(1.是的 2.我再想想)
if "%b%" neq "1" goto :eof
cls&set /p c=你肯定?(1.肯定 2.我#@...你再不告诉我,就砸了你个狗日的机子!)
cls&echo 算了,还是告诉你:
for /f "delims=" %%i in ('ver') do echo %%i|findstr /i "xp">nul&&echo 当前运行环境是xp系统。||echo 当前运行环境是vista系统。
pause>nul


[ Last edited by zw19750516 on 2008-6-24 at 09:59 AM ]
批处理之家新域名:www.bathome.net
第 8 楼 发表于 2008-06-24 14:03 ·  中国 广东 电信
高级用户
★★★
积分 740
发帖 373
注册 2008-05-23 14:40
18年会员
UID 119498
性别 男
来自 中国,广东
状态 离线
ver|find "5.1">nul
if errorlevel 0 goto xp
ver|find "6.0">nul
if errorlevel 0 goto vista

:xp
echo xp

:vista
echo vista
第 9 楼 发表于 2008-06-24 14:16 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
net config work

Return Values

Value Operating System
NT40 Microsoft Windows NT 4.0
2000 Microsoft Windows 2000
2002 Microsoft Windows XP
2003 Microsoft Windows 2003



VISTA暂缺.
第 10 楼 发表于 2008-06-25 08:56 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,284
发帖 538
注册 2002-11-02 00:00
23年会员
UID 129
性别 男
状态 离线

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
WScript.Echo objOperatingSystem.Version
Next

要知道现在用什么系统,就需知道系统的版本号,自己再添加识别语句就好了。
论坛跳转: