Вызов MSYS bash из Windows cmd
Я использую GCC в Windows 7 (используя сборку TDM). Я установил MSYS, чтобы иметь возможность выполнять сделать и скомпилировать с помощью makefiles. Тем не менее, это утомительно каждый раз при запуске MSYS Баш shell, перейдите в каталог проекта и запустите make
.
Я хочу автоматизировать этот процесс. Я предпочитаю иметь пакетный файл в Windows или что-то подобное, из которого я затем вызываю оболочку MSYS Bash. Он должен перейти в каталог пакетный файл находится и вызывает make
.
это возможно? Могу ли я отправлять команды MSYS Bash из cmd (например, навигация/вызов make
)? Или я могу позволить MSYS Bash запустить "сценарий Bash", который устанавливает команды для выполнения, как пакетные сценарии?
PS: Это что-то похожее на вопрос переполнения стека выполнение MSYS из cmd.exe с аргументами.
3 ответов
не эксперт MSYS, но делает что-то вроде этой работы для вас:
rem Call this something like compile-project.bat
c:
cd \src\project
bash -c "make"
вам не нужно использовать bash для выполнения make или любой другой программы MSYS. Если вы поместите каталог msys bin на свой путь, вы можете выполнить их из командной оболочки Windows. Кроме того, оболочка bash имеет чрезвычайно мощный язык сценариев, встроенный. Но я не понимаю, о чем вы спрашиваете - вы должны уточнить свой вопрос с фактическим примером того, что вы хотите сделать, изложив шаги, которые вы хотите автоматизировать.
моя собственная установка-это Контекстное меню Проводника Windows под названием "Bash здесь", которое открывает оболочку 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 находится на моем пути. И конечно, любой взлом реестра на свой страх и риск.
на MSYS-1.0.11
с пакетами разработчиков MSYS я могу вызвать скрипт bash (CurrentScript.sh
) с файлом cmd/bat в текущей папке с этой командой:
R:\MinGW\MSYS-1.0.11\bin\sh "%cd%\CurrentScript.sh"