中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 08:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:如何显示操作系统 查看 4,084 回复 27
楼 主 请教:如何显示操作系统 发表于 2006-11-17 23:50 ·  中国 广东 佛山 顺德区 电信
初级用户
积分 52
发帖 20
注册 2006-11-04 23:06
19年会员
UID 69588
性别 男
状态 离线
已经在论坛里面搜索过了,好象是用%OS%,但是问题是WIN2000显示WINDOS_NT,在WINXP里也是显示WINDOWS_NT,晕……
望高手解答。
2 发表于 2006-11-17 23:51 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
ver
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2006-11-18 00:24 ·  中国 广东 佛山 顺德区 电信
初级用户
积分 52
发帖 20
注册 2006-11-04 23:06
19年会员
UID 69588
性别 男
状态 离线
CCWAN能够再具体一点吗?VER我不太明白!
4 发表于 2006-11-18 00:27 ·  中国 广东 佛山 顺德区 电信
初级用户
积分 52
发帖 20
注册 2006-11-04 23:06
19年会员
UID 69588
性别 男
状态 离线
哦,原来是写成:
VER %OS%
但是它的信息也太详细了,我只想分开WIN2K和WINXP。因为我打算用批处理修改大家的HOST文件,但是WIN2K和WINXP存放的地方并不相同。
5 发表于 2006-11-18 00:43 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  如果只有XP和2000的系统,可以试试下面这个。

@echo off
ver|find /i "Windows XP">NUL || VER|FIND /I "Windows 2000" && echo 此系统是WINDOWS XP || 此系统是WINDOWS 2000
PAUSE
6 发表于 2006-11-18 00:50 ·  中国 广东 佛山 顺德区 电信
初级用户
积分 52
发帖 20
注册 2006-11-04 23:06
19年会员
UID 69588
性别 男
状态 离线
老兄写错了吧!用不了啊!我并不是想输出,而是最好能够判断和分辨。
7 发表于 2006-11-18 00:50 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
请按任意键继续……
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
8 发表于 2006-11-18 01:32 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  五楼代码有点小问题,特修正如下:( 判断的)

@echo off
ver|find /i "Windows XP">NUL && echo 此系统是WINDOWS XP || echo 此系统是WINDOWS 2000
PAUSE


[ Last edited by lxmxn on 2006-11-20 at 07:25 AM ]
9 发表于 2006-11-18 01:33 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by zdh at 2006-11-18 00:50:
老兄写错了吧!用不了啊!我并不是想输出,而是最好能够判断和分辨。


  请把你想实现的目的说清楚。

  究竟何谓判断和分辨?
10 发表于 2006-11-18 01:51 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  8F的代码其实还是有缺陷的,因为它犯了逻辑错误:如果不是XP系统,就一定是2K系统么?

  搜集了部分操作系统的内部版本号,可以用ver命令配合find来判断操作系统:


ME系统:Windows Millennium
Win2K专业版:Microsoft Windows 2000
WinXP专业版:Microsoft Windows XP
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
11 发表于 2006-11-18 01:52 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
查看系统更详细的版本信息/同时还可以查看远程主机的详细版本信息:

Windows Server 2003 中文企业版自带一个外部命令工具: GETTYPE.exe
这个工具含:默认查看版本式 和 非常多指定参数查看本地和远程主机更多详细版本参数。

同时,试验向下”移植“此工具到Windows 2000版本上运行,完全准确检测出了系统版本。


测试举例: Windows Server 2003 系统时显示信息~:)
====================================================
主机名: ART
名称: WindowsServer 2003, Enterprise Edition
版本: 5.2 内部版本 3790
角色: 工作组
组件: 未安装



测试举例: Windows 2000 系统时显示信息~:)
====================================================
主机名: net-winn2000
名称: Windows 2000 Advanced Server
版本: 5.0 内部版本 2195 Service Pack 4
角色: 工作组
组件: 未安装




此工具可以在这里直接下载~:)

==============================================

GETTYPE 帮助信息:)
====================================================
GETTYPE ]]]


描述:
根据要求的操作系统测试,该工具设置系统环境变量
ERRORLEVEL。

参数列表:
/S system 指定要连接的远程系统。

/U user 指定命令在其下执行的用户上下文。

/P 指定给定用户上下文的密码。

/ROLE 返回操作系统的角色。

/SP 返回已安装的最高服务包级别。

/VER 返回版本信息(主要和次要版本)。

/MAJV 只返回主要版本。

/MINV 只返回次要版本。

/TYPE 返回已安装操作系统的类型。

/BUILD 返回操作系统的内部版本号码。

/? 显示帮助消息。

OS 角色 返回的值
------- --------
域控制器: 1
成员服务器: 2
工作组: 3

OS 类型
-------
Home Edition: 1
Professional: 2
Standard Server: 3
Enterprise Server: 4
Datacenter Server: 5
Web Server: 6
for Small Business Server: 7

Service Pack 信息:
-------------------------
如果没有安装 service pack,ERRORLEVEL 为 0。如果安装了 Service Pack 1,
ERRORLEVEL 为 1,等等。

版本信息:
---------
如果安装了 Windows XP,主要版本是 5,ERRORLEVEL
则为 5000。同样,次要版本是 1,则为100。为了同时
表示主要和次要版本,ERRORLEVEL 转换成 5100。

注意: 如果出现错误,ERRORLEVEL 则设为 255。
使用 "echo %errorlevel%" 命令查看返回的值。

示例:
GETTYPE /?
GETTYPE
GETTYPE /s system
GETTYPE /s system /U user /ROLE
GETTYPE /s system /U user /P password /SP
GETTYPE /s system /U user /P password /VER
GETTYPE /s system /U user /P password /MINV
GETTYPE /s system /U user /P password /MAJV
GETTYPE /s system /U user /P password /TYPE
GETTYPE /S system /U domain\user /P password /BUILD



==============================================
[建议] 如果批处理精通的话,完全使用系统自带的工具以及内部命令以及注册表等任何可使用资源是很简单的事情。

     如果批处理以及系统命令非精通状态,同时没有很多时间或兴趣不断深入研究下去,
     则建议使用处部命令或工具,省事儿~:)

[ Last edited by redtek on 2006-11-17 at 01:58 PM ]
附件
Gettype版本信息显示.rar (22.95 KiB, 下载附件所需积分 1 点, 下载次数: 38)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
12 发表于 2006-11-18 01:55 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
Windows Server 2003 中文企业版ver命令输出信息:


C:\WINDOWS>ver

Microsoft Windows
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
namejm +2 2006-11-18 02:03
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
13 发表于 2006-11-18 02:00 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  呵呵,建议大家把windwos各个系列、各个版本的内部版本号发出来共享一下,以后写批处理判断操作系统就方便多了——最好是用 ver 命令来查,然后把详细结果帖出来。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
14 发表于 2006-11-18 02:44 ·  中国 山东 泰安 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
98 SE2

Windows 98

TMP=C:\WINDOWS\TEMP
TEMP=C:\WINDOWS\TEMP
PROMPT=$p$g
winbootdir=C:\WINDOWS
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
COMSPEC=C:\WINDOWS\COMMAND.COM
windir=C:\WINDOWS
BLASTER=A220 I5 D1 T4 P300



--------------------------------------------------------------------------------------------

2000 Professional SP4

Microsoft Windows 2000

ALLUSERSPROFILE=D:\Documents and Settings\All Users
APPDATA=D:\Documents and Settings\Administrator\Application Data
CommonProgramFiles=D:\Program Files\Common Files
COMPUTERNAME=ZHOU
ComSpec=D:\WINNT\system32\cmd.exe
HOMEDRIVE=D:
HOMEPATH=\
LOGONSERVER=\\ZHOU
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Os2LibPath=D:\WINNT\system32\os2\dll;
Path=D:\WINNT\system32;D:\WINNT;D:\WINNT\System32\Wbem;D:\Program Files\Common Files\Autodesk Shared\;D:\3dsmax5\backburner2\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramFiles=D:\Program Files
PROMPT=$P$G
SystemDrive=D:
SystemRoot=D:\WINNT
TEMP=D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
USERDOMAIN=ZHOU
USERNAME=Administrator
USERPROFILE=D:\Documents and Settings\Administrator
windir=D:\WINNT




--------------------------------------------------------------------------------------------

XP Professional SP2

Microsoft Windows XP

ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\xixi\Application Data
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=YUXI
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\xixi
LOGONSERVER=\\YUXI
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Common Files\Adobe\AGL
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 4 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0401
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\xixi\LOCALS~1\Temp
TMP=C:\DOCUME~1\xixi\LOCALS~1\Temp
USERDOMAIN=YUXI
USERNAME=xixi
USERPROFILE=C:\Documents and Settings\xixi
windir=C:\WINDOWS



--------------------------------------------------------------------------------------------


2003 Enterprise SP1 R2

Microsoft Windows

ALLUSERSPROFILE=D:\Documents and Settings\All Users
APPDATA=D:\Documents and Settings\J\Application Data
CLIENTNAME=Console
ClusterLog=D:\WINDOWS\Cluster\cluster.log
CommonProgramFiles=D:\Program Files\Common Files
COMPUTERNAME=NATURAL
ComSpec=D:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=D:
HOMEPATH=\Documents and Settings\J
include=e:\Program Files\Microsoft Visual Studio\VC98\atl\include;e:\Program Files\Microsoft Visual Studio\VC98\mfc\include;e:\Program Files\Microsoft Visual Studio\VC98\include
lib=e:\Program Files\Microsoft Visual Studio\VC98\mfc\lib;e:\Program Files\Microsoft Visual Studio\VC98\lib
LOGONSERVER=\\NATURAL
MSDevDir=D:\Program Files\Microsoft Visual Studio\Common\MSDev98
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=e:\Program Files\Real\RealProducer Plus 10;D:\WINDOWS\system32;D:\WINDOWS;D:\WINDOWS\System32\Wbem;D:\Program Files\Microsoft SQL Server\80\Tools\Binn\;D:\Program Files\Common Files\Autodesk Shared\;D:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;e:\Program Files\Microsoft Visual Studio\VC98\bin;C:\WINDOWS;C:\WINDOWS\COMMAND
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 10, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=080a
ProgramFiles=D:\Program Files
PROMPT=$p$g
SESSIONNAME=Console
SystemDrive=D:
SystemRoot=D:\WINDOWS
TEMP=D:\DOCUME~1\J\LOCALS~1\Temp
TMP=D:\DOCUME~1\J\LOCALS~1\Temp
USERDOMAIN=NATURAL
USERNAME=J
USERPROFILE=D:\Documents and Settings\J
winbootdir=C:\WINDOWS
windir=D:\WINDOWS



--------------------------------------------------------------------------------------------



首行是 ver ,然后是 set 。
发出来方便大家对照,方便写的批处理能在各系统下通用。
少了个 ME。

[ Last edited by NaturalJ0 on 2006-11-18 at 05:37 AM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
namejm +4 2006-11-18 04:48
15 发表于 2006-11-18 04:27 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

8F的代码其实还是有缺陷的,因为它犯了逻辑错误:如果不是XP系统,就一定是2K系统么?

  8楼已经说明了这是是修改5楼的代码的,而在5楼上方有一说明:
如果只有XP和2000的系统,可以试试下面这个。

论坛跳转: