【问题标题】:Starting Beyond Compare from the Command Line从命令行开始超越比较
【发布时间】:2010-05-06 13:37:51
【问题描述】:

我在以下位置安装了 Beyond Compare 3;

"C:\Program Files\Beyond Compare 3\BCompare.exe"

和 Cygwin;

"C:\Cygwin\bin\bash.exe"

我想要的是能够使用诸如;的命令

diff <file1> <file2>

进入 Cygwin shell 并让 shell 派生一个进程,以无与伦比的方式打开这两个文件。

我查看了Beyond Compare Support Page,但恐怕它对我来说太简短了。我尝试逐字复制文本(除了可执行文件的路径)无济于事;

Instead of using a batch file, create a file named "bc.sh" with the following line:
"$(cygpath 'C:\Progra~1\Beyond~1\bcomp.exe')" `cygpath -w "$6"` `cygpath -w "$7"` /title1="$3" /title2="$5" /readonly 

我应该替换 cygpath 吗?当我在命令行中输入脚本名称时,出现“找不到命令”错误。

gavina@whwgavina1 /cygdrive
$ "C:\Documents and Settings\gavina\Desktop\bc.sh"
bash: C:\Documents and Settings\gavina\Desktop\bc.sh: command not found

是否有人像我描述的那样使用 Beyond Compare 工作?这在 Windows 环境中是否可行?

提前致谢!

【问题讨论】:

  • 在你的脚本中你能 echo $1 -> $9 看看你传入了什么吗?还回显您尝试运行的命令行以查看您要执行的内容,然后发布。

标签: cygwin beyondcompare


【解决方案1】:

在 Cygwin 内部,文件系统更像是 unix。 cygpath 组件在那里是因为驱动器的根出现在路径中的不同位置。 "C:\" 对 Cygwin 没有任何意义,它认为 '/' 是根,你的驱动器必须从那里开始,因此 cygpath 扩展。另外,请尝试使用参考页面中的 8.3 表单:

"$(cygpath 'C:\Progra~1\Beyond~1\bcomp.exe')"

【讨论】:

  • 嗨,Kelly,这很好,但我在将参数传递给程序时遇到了一些问题。您将如何传递两个 Windows 格式的文件引用?
【解决方案2】:

将此函数添加到您的~/.bashrc 文件中。

bc() {
  "/cygdrive/c/Program Files/Beyond Compare 3/BCompare.exe" $1 $2 -fv "Text Compare"
}

然后你可以在命令行上写bc file1.txt file2.txt,然后使用Beyond Compare获得一个很好的文本比较。

【讨论】:

    【解决方案3】:

    @Romain Hippeau 谢谢,我有点傻。

    要在 Cygwin 中运行 shell 脚本,您必须使其可执行。

    chmod 755 bc.sh 
    

    然后运行脚本使用;

    ./bc.sh
    

    脚本在当前目录中的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多