[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 如何比较命令行程序的版本?

事情是这样的,低版本的REG.exe对中文支持有问题,
http://bbs.bathome.net/thread-2082-1-1.html

所以本人想提取Vista下最新版的REG.exe,复制关替换较低的版本,
接下来又有问题了,如果已经替换过就不需要重复操作,
有没有什么命令可以在批处理比较两个REG.exe的版本?
如果有的话,再遇到其它的版本问题都可以替换成最新的。
谢谢!

  1. Windows 控制台注册表工具 - 版权所有 (C) Microsoft Corp. 1981-2001.  保留所有权繰EG Operation [参数列表]
  2.   Operation  [ QUERY   | ADD    | DELETE  | COPY    |
  3.                SAVE    | LOAD   | UNLOAD  | RESTORE |
  4.                COMPARE | EXPORT | IMPORT ]
  5. 返回代码: (除了 REG COMPARE)
  6.   0 - 成功
  7.   1 - 失败
  8. 要得到有关某个操作的帮助,请键入:
  9.   REG Operation /?
  10. 例如:
  11.   REG QUERY /?
  12.   REG ADD /?
  13.   REG DELETE /?
  14.   REG COPY /?
  15.   REG SAVE /?
  16.   REG RESTORE /?
  17.   REG LOAD /?
  18.   REG UNLOAD /?
  19.   REG COMPARE /?
  20.   
复制代码

以上内容保存为reg_xp.txt,运行以下代码。
  1. @echo off
  2. reg/?>reg.txt
  3. fc reg_xp.txt reg.txt
  4. if %errorlevel% equ 0 echo 现有reg.exe是xp版本。
  5. pause
复制代码
心绪平和,眼藏静谧。

TOP

明白版主的意思,但不知道是否有更好的办法?与其这样,比较大小是否更好?

右键中的详细信息里能到看到XP下和Vista的版本号是不同的,
命令行下没有这样的功能吗?

TOP

  1. wmic datafile where "Name='C:\\WINDOWS\\system32\\reg.exe'" get Version /value
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. 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
心绪平和,眼藏静谧。

TOP

这回对了,多谢两们大侠的帮助!

TOP

这样判断似乎很容易出问题,最好能比较版本号:
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下工作,会报错。

TOP

这个问题根本就不是问题
这类文件的工程修改时间,新版本的比老版本的要早,用xcopy就可以直接达到要求了,除非你的这个文命是做了后期修改的

TOP

回复 8楼 的帖子

如何得到工程修改时间?
Vista替换XP后不能用,
我看了属性中的修改日期,最新是XP sp3的版本。

TOP

返回列表