Board logo

标题: [注册表类] 如何对比两个reg文件? [打印本页]

作者: 282842712474    时间: 2008-8-12 15:29     标题: 如何对比两个reg文件?

并且把不同部分生成第三个文件

(注:由于注册表不同于一般文本格式,因此一般文本的判别是无法使用的)
作者: pusofalse    时间: 2008-8-12 15:33

reg也是记事本格式的一种。
fc 1.reg 2.re2>3.reg
作者: 282842712474    时间: 2008-8-12 15:45

不行的,我把注册表给你,请你看看

其中1.reg有的,2.reg一定有
作者: batman    时间: 2008-8-12 15:46

  1. findstr /v /g:2.reg 1.reg>3.reg
复制代码

[ 本帖最后由 batman 于 2008-8-12 15:48 编辑 ]
作者: 282842712474    时间: 2008-8-12 15:47

reg是unicode格式的
作者: 282842712474    时间: 2008-8-12 15:49

原帖由 batman 于 2008-8-12 15:46 发表
findstr /v /g:2.reg 1.reg>3.reg

FINDSTR: 搜索字符串太长。
请按任意键继续. . .

请按照我提供的注册表来测试
作者: batman    时间: 2008-8-12 16:16

建议楼主先将两个reg文件转成txt文件,然后运行如下代码:
  1. @echo off
  2. for /f "delims=" %%i in (1.txt) do set "_%%i=a"
  3. for /f "delims=" %%i in (2.txt) do if not defined _%%i echo %%i>>3.txt
  4. start 3.txt
复制代码
9M多的文件,等待的时间是很长的。。。

[ 本帖最后由 batman 于 2008-8-12 16:17 编辑 ]
作者: 282842712474    时间: 2008-8-12 16:33

我已经通过第三方软件完成比较,但是软件生成的比较文件中含有一些分界符号等信息,这些都是我不需要的,能否用bat帮我去掉?
例如删除
!>
-----------------------------
=======
等内容
但注意不要删除单个=和[ ]
作者: batman    时间: 2008-8-12 16:39

再用软件就是的。。。这里只研究批。。。
作者: 282842712474    时间: 2008-8-12 16:47

软件也是命令行的

这时我已经变成了用bat进行文本加工,依然是bat亚

还有你的脚本运行也不成功
作者: batman    时间: 2008-8-12 16:52

原帖由 282842712474 于 2008-8-12 16:47 发表
还有你的脚本运行也不成功

不知道你是怎么测试的,下面是我测试后生成的3.txt
我在你发的另一个贴子里就指出了你左改右改的毛病,在本贴里还是这样。。。
作者: pusofalse    时间: 2008-8-12 17:02

楼主先把3.txt改为ansi编码格式。然后运行下面代码
  1. @echo off
  2. ren 3.txt 4.txt
  3. for /f "delims=" %%a in (4.txt) do (
  4. set "str=%%a"
  5. call set "str=%%str:!^>=%%"
  6. call,set "str=%%str:-----------------------------=%%"
  7. call,echo.%%str%%
  8. )>>3.txt
  9. pause
复制代码

作者: 282842712474    时间: 2008-8-12 20:35

怎样改为改为ansi编码格式
作者: Batcher    时间: 2008-8-12 21:24     标题: 回复 13楼 的帖子

type的输出结果是ANSI格式




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2