通过命令行将文件格式传递给 beyond compare

pass file format to beyond compare via command line

我已经成功地使用命令行激活 beyond compare:

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

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

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

有人知道如何做到这一点吗? 我查看了 beyond compare 脚本参考,但无济于事。

谢谢! 杰克

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

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

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

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

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

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

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

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

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

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

我们想在 subshell 中执行上述操作以避免影响当前 shell 的环境。

这很有效!