比较两个文本文件并进行更改,使它们完全相同

时间:2011-06-16 16:17:22

标签: batch-file

我有两个文件,一个是旧文件,需要将此文件中的“某些”数据覆盖到第二个文件中。这些文件实际上是.reg文件。在这些文件中,定义了大约30个键,但只需要更新大约10个键。这两个文件的示例如下所示。

文件(旧)的.reg


Windows注册表编辑器版本5.00

[HKEY_CURRENT_USER \ SOMETHING \ PERM \ PHONENUMBER]与 @ = “1234567”

[HKEY_CURRENT_USER \ SOMETHING \ PERM \ ClientCode] @ = “B01”

[HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT ....] “帐户名称”=“blah,blah,blah.com” “服务器名”= “PCCCCP”

等。 等

文件(新)的.reg


Windows注册表编辑器版本5.00

[HKEY_CURRENT_USER \ SOMETHING \ PERM \ PHONENUMBER]与 @ = “XXXXXXX”

[HKEY_CURRENT_USER \ SOMETHING \ PERM \ ClientCode] @ = “XXX”

[HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT ....] “帐户名称”=“blah,blah,blah.com” “服务器名”= “XXXXXX”

等。 等


有人可以帮忙吗?使用批处理还是使用vbscript更容易?我现在正在学习,也许这个请求有点过头了。我正在寻找的只是代码片段。

提前致谢!!!!

1 个答案:

答案 0 :(得分:0)

FOR /F "USEBACKQ tokens=*" %%F IN (`type old.reg` ^| FIND /V /I "string you wish to omit"`) DO (ECHO %%F>>new.reg)

对于每个附加字符串,添加另一个^ | FIND / V / I“你想省略的字符串”如下:

(`type old.reg` ^| FIND /V /I "string you wish to omit" ^| FIND /V /I "string you wish to omit" ^| FIND /V /I "string you wish to omit"`)

然后只需将新字符串作为输出回显到该文件。我之前没有搞过.reg文件,所以我不确定它们是否需要按特定顺序排列?如果是这样的话,你至少在批处理脚本中被搞砸了= P