标题: [系统相关] 如何比较命令行程序的版本? [打印本页]
作者: ibm 时间: 2008-10-6 19:14 标题: 如何比较命令行程序的版本?
事情是这样的,低版本的REG.exe对中文支持有问题,
见http://bbs.bathome.net/thread-2082-1-1.html
所以本人想提取Vista下最新版的REG.exe,复制关替换较低的版本,
接下来又有问题了,如果已经替换过就不需要重复操作,
有没有什么命令可以在批处理比较两个REG.exe的版本?
如果有的话,再遇到其它的版本问题都可以替换成最新的。
谢谢!
作者: pusofalse 时间: 2008-10-6 19:45
- Windows 控制台注册表工具 - 版权所有 (C) Microsoft Corp. 1981-2001. 保留所有权繰EG Operation [参数列表]
-
- Operation [ QUERY | ADD | DELETE | COPY |
- SAVE | LOAD | UNLOAD | RESTORE |
- COMPARE | EXPORT | IMPORT ]
-
-
- 返回代码: (除了 REG COMPARE)
-
-
- 0 - 成功
- 1 - 失败
-
- 要得到有关某个操作的帮助,请键入:
-
- REG Operation /?
-
- 例如:
-
- REG QUERY /?
- REG ADD /?
- REG DELETE /?
- REG COPY /?
- REG SAVE /?
- REG RESTORE /?
- REG LOAD /?
- REG UNLOAD /?
- REG COMPARE /?
-
复制代码
以上内容保存为reg_xp.txt,运行以下代码。- @echo off
- reg/?>reg.txt
- fc reg_xp.txt reg.txt
- if %errorlevel% equ 0 echo 现有reg.exe是xp版本。
- pause
复制代码
作者: ibm 时间: 2008-10-6 20:28
明白版主的意思,但不知道是否有更好的办法?与其这样,比较大小是否更好?
右键中的详细信息里能到看到XP下和Vista的版本号是不同的,
命令行下没有这样的功能吗?
作者: Batcher 时间: 2008-10-6 20:34
- wmic datafile where "Name='C:\\WINDOWS\\system32\\reg.exe'" get Version /value
复制代码
作者: pusofalse 时间: 2008-10-6 20:36
- @echo off
- for /f "tokens=2 delims== " %%a in ('wmic datafile where "name='c:\\windows\\system32\\reg.exe'" get version /value') do if "%%a" equ "5.1.2600.2180" echo 现有reg.exe是XP版本
复制代码
测试环境,xp sp2
作者: ibm 时间: 2008-10-6 20:48
这回对了,多谢两们大侠的帮助!
作者: ibm 时间: 2008-10-7 13:47
这样判断似乎很容易出问题,最好能比较版本号:
Vista的REG.exe版本为 REG V6.0.6000.16386
XP sp3的REG.exe版本为 REG V5.1.2600.5512
XP sp2的REG.exe版本为 REG V5.1.2600.2180
现在的问题是:
当目标版本低于 REG V5.1.2600.5512 时替换,否则不替换
XP sp3的REG V5.1.2600.5512可以工作在XP sp2,
但Vista下的REG V6.0.6000.16386却不能在XP下工作,会报错。
作者: everest79 时间: 2008-10-7 13:58
这个问题根本就不是问题
这类文件的工程修改时间,新版本的比老版本的要早,用xcopy就可以直接达到要求了,除非你的这个文命是做了后期修改的
作者: ibm 时间: 2008-10-7 14:54 标题: 回复 8楼 的帖子
如何得到工程修改时间?
Vista替换XP后不能用,
我看了属性中的修改日期,最新是XP sp3的版本。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |