我设法使用命令行激活了比较:
"C:\Program Files\Beyond Compare 4\BComp.exe" /qc /iu /K "file1.c" "file2.c" & echo %errorlevel & exit
这允许我在cmd ERRORLEVEL变量中获得比较结果。
我无法设置用于此比较的文件格式。 手动,我可以通过功能区上的“格式”按钮通过GUI设置它。
任何人都知道如何做到这一点? 我查看了超越比较脚本参考,但无济于事。
谢谢你! 千斤顶答案 0 :(得分:1)
Beyond Compare不支持使用命令行开关强制执行文件格式。
如果文件扩展名为.c,Beyond Compare将使用内置的C / C ++文件格式。要使用其他文件格式,请打开工具>文件格式。使用具有匹配文件掩码的列表中的最高文件格式。要强制使用文件格式而不管掩码,请将其移至列表顶部并将文件掩码设置为*.*
。
有关支持的命令行参数,请参阅Beyond Compare的帮助文件中的Command Line Reference主题。
答案 1 :(得分:0)
这是一个稍微不同的用例。我经常发现自己在比较一些已复制到其他内容的JSON。这两个片段都存在于存储剪贴板历史记录的剪贴板管理器中。
如果您使用的是ZSH,则可以按以下步骤使用进程替换来执行此操作(请注意=()
):
bcomp -fv="Text Compare" =(pbpaste) =(pbpasteother)
上面的代码会生成临时文件,这些临时文件存储命令(pbpaste
,pbpasteother
等)的输出,然后将它们发送到Beyond Compare,这是比较明智的选择。唯一值得注意的是,您使用bcomp
,这是Beyond Compare安装的等待返回代码的命令行工具的名称
但是,以上内容不允许我将代码段比较为JSON。
但是,使用ZSH,也可以设置扩展名:
(TMPSUFFIX=.json; bcomp -fv="Text Compare" =(pbpaste) =(pbpasteother) )
我们希望在subshell中执行上述操作,以避免影响当前shell的环境。
那行得通!