Запуск вне сравнения из командной строки


У меня есть Beyond Compare 3, установленный в;

"C:Program FilesBeyond Compare 3BCompare.exe"

И Cygwin;

"C:Cygwinbinbash.exe"

Что я хотел бы иметь возможность использовать такую команду, как;

diff <file1> <file2>

В оболочку Cygwin и заставить оболочку разветвить процесс, открывающий два файла в beyond compare.

Я посмотрел на страницу поддержкиBeyond Compare , но, боюсь, она была слишком короткой для меня. Я попытался скопировать текст дословно (кроме пути к исполняемому файлу) безрезультатно;
Instead of using a batch file, create a file named "bc.sh" with the following line:
"$(cygpath 'C:Progra~1Beyond~1bcomp.exe')" `cygpath -w "$6"` `cygpath -w "$7"` /title1="$3" /title2="$5" /readonly 

Должен ли я был это сделать? заменить cygpath? Я получаю ошибку "команда не найдена", когда я ввожу имя скрипта в командной строке.

gavina@whwgavina1 /cygdrive
$ "C:Documents and SettingsgavinaDesktopbc.sh"
bash: C:Documents and SettingsgavinaDesktopbc.sh: command not found

Есть ли у кого-нибудь вне сравнения работа, как я описал? Возможно ли это вообще в среде Windows?

Заранее спасибо!

3 2

3 ответа:

Внутри Cygwin файловая система больше похожа на unix. Компонент cygpath существует потому, что корень диска находится в другом месте пути. "C:\" ничего не значит для Cygwin, он считает ' / ' корнем, и ваши диски должны начинаться оттуда, отсюда расширение cygpath. Кроме того, попробуйте использовать форму 8.3, как на странице ссылки:

" $(cygpath 'C:\Progra~1 \ за пределами~1\bcomp.exe') "

Добавьте эту функцию в свой файл ~/.bashrc.

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

Тогда вы можете просто написать bc file1.txt file2.txt в командной строке и получить хорошее сравнение текста с помощью Beyond Compare.

@Ромен Гиппо Спасибо, я немного дебил.

Чтобы запустить сценарий оболочки в Cygwin, вы должны сделать его исполняемым.

chmod 755 bc.sh 

Затем для запуска скрипта используйте;

./bc.sh

Где скрипт находится в текущем каталоге.