2

我已经设法使用命令行激活了无法比较的功能:

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

这使我可以在 cmd ERRORLEVEL 变量中获得比较结果。

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

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

谢谢你!杰克

4

2 回答 2

2

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

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

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

于 2018-01-26T19:55:20.060 回答
0

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

如果您使用的是 ZSH,那么您可以使用进程替换来执行此操作,如下所示(注意=()):

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

以上生成的临时文件存储了命令(等)的输出,pbpaste然后pbpasteother将它们发送到 Beyond Compare,这并不明智。唯一值得注意的是,您使用的是 Beyond Compare 安装的等待返回码bcomp的命令行工具的名称

但是,以上内容不允许我将这些片段作为 JSON 进行比较。

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

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

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

那行得通!

于 2019-08-06T12:01:29.950 回答