通过命令行传递文件格式以超越比较

时间:2018-01-25 13:29:29

标签: cmd beyondcompare4

我设法使用命令行激活了比较:

"C:\Program Files\Beyond Compare 4\BComp.exe"  /qc /iu /K  "file1.c" "file2.c" & echo %errorlevel & exit

这允许我在cmd ERRORLEVEL变量中获得比较结果。

我无法设置用于此比较的文件格式。 手动,我可以通过功能区上的“格式”按钮通过GUI设置它。

任何人都知道如何做到这一点? 我查看了超越比较脚本参考,但无济于事。

谢谢你! 千斤顶

2 个答案:

答案 0 :(得分:1)

Beyond Compare不支持使用命令行开关强制执行文件格式。

如果文件扩展名为.c,Beyond Compare将使用内置的C / C ++文件格式。要使用其他文件格式,请打开工具>文件格式。使用具有匹配文件掩码的列表中的最高文件格式。要强制使用文件格式而不管掩码,请将其移至列表顶部并将文件掩码设置为*.*

有关支持的命令行参数,请参阅Beyond Compare的帮助文件中的Command Line Reference主题。

答案 1 :(得分:0)

这是一个稍微不同的用例。我经常发现自己在比较一些已复制到其他内容的JSON。这两个片段都存在于存储剪贴板历史记录的剪贴板管理器中。

如果您使用的是ZSH,则可以按以下步骤使用进程替换来执行此操作(请注意=()):

bcomp -fv="Text Compare" =(pbpaste) =(pbpasteother)

上面的代码会生成临时文件,这些临时文件存储命令(pbpastepbpasteother等)的输出,然后将它们发送到Beyond Compare,这是比较明智​​的选择。唯一值得注意的是,您使用bcomp,这是Beyond Compare安装的等待返回代码的命令行工具的名称

但是,以上内容不允许我将代码段比较为JSON。

但是,使用ZSH,也可以设置扩展名:

(TMPSUFFIX=.json; bcomp -fv="Text Compare" =(pbpaste) =(pbpasteother) )

我们希望在subshel​​l中执行上述操作,以避免影响当前shell的环境。

那行得通!