中国DOS联盟

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

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

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

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