![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-13 05:07 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 请教高手,能否用批处理获取Windows的版本信息? |
| 可打印版本 1,511 / 8 |
| 第1楼 zww3008 | 发表于 2004-01-16 00:00 |
| 初级用户 发帖 21 积分 197 | |
|
请教高手,能否用批处理获取Windows的版本信息? 经常制作各种批处理程序应用到不同的机上,有时需要对不同的系统进行不同的操作,请问如何用批处理实现获取 windows 的版本信息(要能通用)?
在 windows 中我用安装制作程序 CreatInstall 2000 定义宏从注册表中获取值,可以实现,但在批处理中不知能否实现? |
|
| 第2楼 Wengier | 发表于 2004-01-16 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
DOS下吗?试试WINVER命令。
|
|
| 第3楼 zww3008 | 发表于 2004-01-18 00:00 |
| 初级用户 发帖 21 积分 197 | |
|
winver是一个32位的程序,好像只windows 98中有(C:\WINDOWS\WINVER.EXE),XP中我没找到。我要的通用性就从谈起。更重要的是,它只是弹出一个窗口,不能将信息导出为批处理所利用。
|
|
| 第4楼 Wengier | 发表于 2004-01-18 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
zww3008:如果在纯DOS下运行WINVER的话,是不会弹出窗口的,而是显示Windows的版本号,比如:Windows 98
|
|
| 第5楼 willsort | 发表于 2004-01-26 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re zww3008:
http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?BoardID=12&ID=8905&replyID=54233&skin=1 |
|
| 第6楼 zww3008 | 发表于 2004-02-03 00:00 |
| 初级用户 发帖 21 积分 197 | |
|
呵~过年刚回来!
willsort 兄在5楼介召的都是获取DOS版本信息的方法,我需要的是在windows中运行批处理程序,获取 wibdows 98/Me/2000/XP等等WINDOWS版本信息的方法。不知有没有可行的方法? |
|
| 第7楼 willsort | 发表于 2004-02-04 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re zww3008:
经过实际测试,在WIN 98下和WIN XP下得到的都是WINDOWS的版本值,所以我才给你推荐的。 |
|
| 第8楼 zww3008 | 发表于 2004-02-04 00:00 |
| 初级用户 发帖 21 积分 197 | |
|
真的可以,真是太神奇了!我经常喜欢搞些程序DIY,这些信息的获取都对我相当有用!
::getvar.bat只是有些还不太明白,请详细讲解一下: 1. 第二行中的 prompt 是什么?是否指%prompt%变量?如是为什么不用双%号括起来,与后面的set 是不是两个命令写在了一行中,在win98中能直接将两个命令写在一行中吗?%3的获值从何而来? 2. 使用时的命令行 getvar curver $v ,是否curver和$v分别对应“%comspec% /c %0 invoke %1 %2”中的 invoke 和 %1?那%2对应什么? 3. 我向您请教的问题多次遇到 command /c 等的参数问题,但使用 command /?获得的帮助不是很详细,也没找到有关资料,能否详细、全面地对 command 的参数来个介召? |
|
| 第9楼 willsort | 发表于 2004-02-06 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re zww3008:
1,prompt是作为内部命令使用的,set仅仅是它的字符串形式的参数,当输出到tt中后,其内容为set curver=当前版本,则set成为内部命令被调用; 2,windows中可以将两个命令在一行中使用,但有一定的局限性,并不适合此处的需求。 http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?boardID=12&ID=9106 3,参数对应关系如下: ::getvar.bat 此句后执行 @if == prompt set %2=%3 %1为invoke,%2为curver,%3为系统当前版本 @if == goto end @echo off 此句先执行 %comspec% /c %0 invoke %1 %2>tt.bat %1为curver,%2为$v,invoke为调用子程序的标志字 call tt 4,command的详细用法可以参考我上传的dos帮助文档,链接如下: http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?boardID=12&ID=9266 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |