有没有工具可以比较.ini文件中的值?[关闭]


10

我正在寻找专门用于.ini文件(通常用作设置文件)的文件比较实用程序。

有很多文件比较工具(WinDiff,Beyond Compare,CompareIt,WinMerge等),但是我尝试过的任何工具都无法很好地处理.ini文件。

典型的.ini文件可能如下所示:

[Settings]
Setting1=abc
Setting2=xyz

该工具应根据等号前的字符串匹配行,然后在等号后显示其他所有内容的差异。一节中的行顺序(各节用方括号表示)无关紧要,应将其忽略。

我找不到任何可以处理此问题的工具。通常,现有工具会在等号之前的行首显示差异(如果等号之后的大部分文本都匹配),它们将与重新排序的行(在显示全部更改或匹配某些行并显示其余部分在一个位置删除,然后在另一位置添加)。我什至找到了一些可以限制匹配文本的工具,例如使用正则表达式,但是这些工具只是忽略了行的其余部分,我无法根据一种模式(即等号之前的所有内容)来对行进行匹配,然后根据在另一个(等号之后的所有字符)上。


既然我已经阅读了您的问题,我真的不明白您想要什么...也许您可以展示您想要的以及拥有的东西。正则表达式和差异应该能够处理您想做的事情。
约瑟夫·科恩

您应该重命名帖子....是否有工具可以比较.ini文件中的值?
约瑟夫·科恩


谢谢约瑟夫,很好,我已经编辑了标题。splattne-initools听起来很完美,可惜我正在使用Windows。
ssollinger

Answers:




2

我经常只是在比较之前对文件进行了排序。如果您有类似的事情将无济于事

[foo]
bar1=xyz
bar2=abc
[foo2]
bar1=lky

但是假设您的键是唯一的(因此可以与某个部分匹配),它通常会在紧要关头工作。


有时这会有所帮助,但是正如您所说的,如果有多个部分不起作用,那么如果其中一个文件中缺少几行,它也常常会失败(大多数工具然后开始尝试匹配错误的行)。
ssollinger

真正; 我不建议将其作为理想选择,但在紧要关头,它通常会有所帮助
Mikeage

2

尝试vimdiff。这是.ini文件的示例


我的眼睛!.Xdefaults!换他们!
约瑟夫·科恩

1
是的,非常难看,对不起。但是我不认为与.Xdefaults无关,因为这是控制台。我将在vim文档中查找以更改这些颜色:)。
chmeee

1
如果其他人有兴趣,可以通过vim.org获得vimdiff。VimDiff可以,但是当交换行时失败,然后该值与等号之前的字符串更匹配。在这种情况下,VimDiff将显示等号之前的部分中的差异,这不是我想要的。
ssollinger


0

我一直喜欢Winmerge,它非常可定制。


WinMerge很棒,但是不能很好地处理设置文件(.ini文件)。它比其他一些(例如WinDiff)更好,但是我的问题是针对一个专门比较.ini文件中值的工具。WinMerge无法执行此操作。
ssollinger

1
Winmerge具有用于比较已移动且相似的文本块的设置。我用它来比较web.config文件,但是我想它们比ini文件更有条理。
戴夫

我使用WinMerge并对每个文件进行正则表达式替换,以便在比较([0-9]+==)之前删除数字。但是我总是必须丢弃更改的文件。我也在寻找更好的解决方案。
djeidot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.