|
zww3008
初级用户
积分 197
发帖 21
注册 2004-1-9
状态 离线
|
『楼 主』:
请教高手,能否用批处理获取Windows的版本信息?
经常制作各种批处理程序应用到不同的机上,有时需要对不同的系统进行不同的操作,请问如何用批处理实现获取 windows 的版本信息(要能通用)?
在 windows 中我用安装制作程序 CreatInstall 2000 定义宏从注册表中获取值,可以实现,但在批处理中不知能否实现?
|
|
2004-1-16 00:00 |
|
|
Wengier
系统支持
“新DOS时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
2 楼』:
DOS下吗?试试WINVER命令。
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-1-16 00:00 |
|
|
zww3008
初级用户
积分 197
发帖 21
注册 2004-1-9
状态 离线
|
『第
3 楼』:
winver是一个32位的程序,好像只windows 98中有(C:\WINDOWS\WINVER.EXE),XP中我没找到。我要的通用性就从谈起。更重要的是,它只是弹出一个窗口,不能将信息导出为批处理所利用。
|
|
2004-1-18 00:00 |
|
|
Wengier
系统支持
“新DOS时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
4 楼』:
zww3008:如果在纯DOS下运行WINVER的话,是不会弹出窗口的,而是显示Windows的版本号,比如:Windows 98
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-1-18 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
5 楼』:
Re zww3008:
http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?BoardID=12&ID=8905&replyID=54233&skin=1
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2004-1-26 00:00 |
|
|
zww3008
初级用户
积分 197
发帖 21
注册 2004-1-9
状态 离线
|
『第
6 楼』:
呵~过年刚回来!
willsort 兄在5楼介召的都是获取DOS版本信息的方法,我需要的是在windows中运行批处理程序,获取 wibdows 98/Me/2000/XP等等WINDOWS版本信息的方法。不知有没有可行的方法?
|
|
2004-2-3 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
7 楼』:
Re zww3008:
经过实际测试,在WIN 98下和WIN XP下得到的都是WINDOWS的版本值,所以我才给你推荐的。
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2004-2-4 00:00 |
|
|
zww3008
初级用户
积分 197
发帖 21
注册 2004-1-9
状态 离线
|
『第
8 楼』:
真的可以,真是太神奇了!我经常喜欢搞些程序DIY,这些信息的获取都对我相当有用!
Quote: | ::getvar.bat
@if [%1]==[invoke] prompt set %2=%3
@if [%1]==[invoke] goto end
@echo off
%comspec% /c %0 invoke %1 %2>tt.bat
call tt
:end |
|
只是有些还不太明白,请详细讲解一下:
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 的参数来个介召?
|
|
2004-2-4 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
9 楼』:
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 [%1]==[invoke] prompt set %2=%3 %1为invoke,%2为curver,%3为系统当前版本
@if [%1]==[invoke] 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
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2004-2-6 00:00 |
|