2010-05-02 10 views
5

Używam GCC na Windows   7 (używając kompilacji TDM). Zainstalowałem MSYS, aby móc wykonać Make i skompilować przy użyciu plików Makefile. Jednak za każdym razem, gdy uruchamiasz powłokę MSYS Bash, jest to nużące, przejdź do katalogu projektu i uruchom make.Wywoływanie bitu MSYS z Windows cmd

To, czego chcę, to zautomatyzować ten proces. Wolę mieć plik wsadowy w systemie Windows lub coś podobnego, z którego następnie wywołuję powłokę Bash MSYS. Powinien przejść do katalogu, w którym znajduje się plik wsadowy i zadzwonić pod numer make.

Czy to możliwe? Czy mogę wysyłać polecenia do MSYS Bash z cmd (np. Nawigacja/wywoływanie make)? Czy mogę pozwolić, aby Bash MSYS uruchomił "skrypt Bash", który ustawia polecenia do wykonania podobnie jak skrypty wsadowe?

PS: Jest to coś podobnego do pytania przepełnienia stosu Executing MSYS from cmd.exe with arguments.

Odpowiedz

10

Nie ekspertem MSYS, ale robi coś takiego pracy dla Ciebie:

rem Call this something like compile-project.bat 
c: 
cd \src\project 
bash -c "make" 
+0

Tak to prawda! Wielkie dzięki :) –

6

Nie trzeba używać bash wykonać make, lub którykolwiek z pozostałych programów Msys. Jeśli umieścisz katalog bin MSYS na swojej ścieżce, możesz uruchomić je z powłoki poleceń systemu Windows. Alternatywnie, powłoka basha ma wbudowany potężny język skryptowy. Nie jestem jednak pewien, czy o to pytasz - powinieneś wyjaśnić swoje pytanie rzeczywistym przykładem tego, co chcesz zrobić, określając kroki, które chcesz automatyczne.

Moja własna konfiguracja to menu kontekstowe Eksploratora Windows o nazwie "Bash here", które otwiera powłokę bash w wybranym katalogu. Odbywa się to poprzez następujące wpisy rejestru:

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

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

I następujący plik bash.cmd wc ::

@echo off 
title bash 
cd %1% 
bash 

Zauważ, że bin MSYS jest na mojej ścieżce. Oczywiście każde włamanie do rejestru odbywa się na własne ryzyko.

+0

Działa to świetnie, chociaż musiałem użyć/k zamiast/c, aby konsola pozostała otwarta. –

0

na moim MSYS-1.0.11 z twórcami pakietów Msys, mogę zadzwonić skrypt bash (CurrentScript.sh) z pliku cmd/bat w bieżącym folderze z tym poleceniem:

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