Вызов MSYS Bash из Windows CMD - PullRequest
6 голосов
/ 02 мая 2010

Я использую GCC в Windows 7 (используя сборку TDM). Я установил MSYS для выполнения Make и компиляции с использованием make-файлов. Однако утомительно каждый раз запускать оболочку MSYS Bash , переходить в каталог проекта и запускать make.

Я хочу автоматизировать этот процесс. Я предпочитаю иметь командный файл в Windows или что-то подобное, из которого я затем вызываю оболочку MSYS Bash. Он должен перейти в каталог, в котором находится пакетный файл, и вызвать make.

Возможно ли это? Могу ли я отправлять команды в MSYS Bash из cmd (например, навигация / вызов make)? Или я могу позволить MSYS Bash запустить «сценарий Bash», который устанавливает команды, которые будут выполняться так же, как пакетные сценарии?

PS: Это похоже на вопрос переполнения стека Выполнение MSYS из cmd.exe с аргументами .

Ответы [ 3 ]

10 голосов
/ 02 мая 2010

Не эксперт MSYS, но делает что-то подобное для вас:

rem Call this something like compile-project.bat
c:
cd \src\project
bash -c "make"
7 голосов
/ 02 мая 2010

Вам не нужно использовать bash для запуска make или любой другой программы MSYS. Если вы поместите в папку MSYS bin, вы можете выполнить их из командной оболочки Windows. В качестве альтернативы, в оболочку bash встроен чрезвычайно мощный язык сценариев. Но я не уверен, что именно об этом вы и спрашиваете - вы должны уточнить свой вопрос с фактическим примером того, что вы хотите сделать, изложив необходимые шаги автоматизированы.

Моя собственная настройка - иметь контекстное меню проводника Windows под названием «Bash here», которое открывает оболочку bash в выбранном мной каталоге. Это делается с помощью следующих записей реестра:

[HKEY_CLASSES_ROOT\Directory\shell\mybash]
@="Bash Here"

[HKEY_CLASSES_ROOT\Directory\shell\mybash\command]
@="cmd /c c:\\bash.cmd %1"

И следующий файл bash.cmd в c ::

@echo off
title bash
cd %1%
bash

Обратите внимание, что каталог MSYS bin находится на моем пути. И, конечно же, любой взлом реестра осуществляется на ваш страх и риск.

0 голосов
/ 23 февраля 2016

На моем MSYS-1.0.11 с пакетами разработчиков MSYS я могу вызвать bash-скрипт (CurrentScript.sh) с файлом cmd / bat в текущей папке с помощью этой команды:

R:\MinGW\MSYS-1.0.11\bin\sh "%cd%\CurrentScript.sh"
...