2

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

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

和赛格温;

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

我想要的是能够使用以下命令;

diff <file1> <file2>

进入 Cygwin shell 并让 shell fork 一个进程打开两个文件,这是无法比拟的。

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

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 环境中是否可行?

提前致谢!

4

3 回答 3

0

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

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

于 2010-05-06T14:15:45.040 回答
0

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

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

chmod 755 bc.sh 

然后运行脚本使用;

./bc.sh

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

于 2010-05-06T14:18:22.543 回答
0

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

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

然后,您可以bc file1.txt file2.txt在命令行上编写并使用 Beyond Compare 进行漂亮的文本比较。

于 2011-08-18T20:50:42.587 回答