标题: [注册表类] [已解决]]批处理如何实现对比更新两个注册表中指定项? [打印本页]
作者: maxgear 时间: 2011-2-9 16:56 标题: [已解决]]批处理如何实现对比更新两个注册表中指定项?
注册表1.reg
-
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\SOFTWARE\GameXX]
- "Path"="C:\\gamexx.exe"
- "Version"="2.0a"
复制代码
注册表2.reg
-
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\SOFTWARE\GameXX]
- "Path"="D:\\gamexx.exe"
- "Version"="1.0c"
复制代码
批处理如何实现对比1.reg和2.reg,然后更新保存2.reg中的"Version"="1.0c"去"Version"="2.0a"
[ 本帖最后由 maxgear 于 2011-2-10 12:59 编辑 ]
作者: hanyeguxing 时间: 2011-2-10 07:39
如果单纯这样比较文件看不出意义,为什么不直接覆盖呢?
作者: maxgear 时间: 2011-2-10 11:33
原帖由 hanyeguxing 于 2011-2-10 07:39 发表
如果单纯这样比较文件看不出意义,为什么不直接覆盖呢?
因为电脑A和电脑B的安装路径不同,我从电脑A提取1.reg,然后在电脑B同步1.reg的版本(直接覆盖连安装路径都改了)
作者: hanyeguxing 时间: 2011-2-10 11:45
要求:只有一行行首为"Version"
注意:输出转为 ANSI 编码,不保留空行- @echo off
- for /f "tokens=1* delims==" %%a in ('type 1.reg') do if /i "%%a"==""Version"" set "s=%%b"
- (for /f "tokens=1* delims==" %%a in ('type 2.reg') do if "%%b"=="" (echo;%%a) else (
- if /i "%%a"==""Version"" (echo;%%a=%s%) else echo;%%a=%%b
- ))>temp.h
- move temp.h 2.reg
复制代码
[ 本帖最后由 hanyeguxing 于 2011-2-10 11:48 编辑 ]
作者: maxgear 时间: 2011-2-10 13:00 标题: 回复 4楼 的帖子
测试了,输出结果完全正确!
感恩~
努力学习中...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |