从命令行开始超越比较

时间:2010-05-06 13:37:52

标签: cygwin beyondcompare

我安装了Beyond Compare 3;

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

和Cygwin;

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

我希望能够使用诸如;

之类的命令
diff <file1> <file2>

进入Cygwin shell并让shell fork一个进程打开两个文件,超出比较。

我看了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

有没有人像我所说的那样超越比较工作?这甚至可以在Windows环境中使用吗?

提前致谢!

3 个答案:

答案 0 :(得分:0)

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

  

“$(cygpath   'C:\ PROGRA〜1 \超越〜1个\ bcomp.exe')“

答案 1 :(得分:0)

@Romain Hippeau谢谢,我有点像白痴。

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

chmod 755 bc.sh 

然后运行脚本使用;

./bc.sh

脚本位于当前目录中。

答案 2 :(得分:0)

将此功能添加到~/.bashrc文件中。

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

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

相关问题