2010-05-02 8 views
5

Ich benutze GCC unter Windows   7 (mit dem Build TDM). Ich installierte MSYS, um Make ausführen und mit Makefiles kompilieren zu können. Es ist jedoch mühsam, bei jedem Start der Shell MSYS Bash zum Verzeichnis des Projekts zu navigieren und make auszuführen.Aufrufen von MSYS Bash von Windows Cmd

Ich möchte diesen Prozess automatisieren. Ich bevorzuge eine Batch-Datei in Windows oder etwas ähnliches, von der ich dann die MSYS Bash-Shell aufrufen kann. Es sollte zu dem Verzeichnis navigieren, in dem sich die Stapeldatei befindet, und make aufrufen.

Ist das möglich? Kann ich Kommandos von cmd an MSYS Bash senden (wie Navigation/Aufruf make)? Oder kann ich die MSYS Bash ein "Bash-Skript" ausführen lassen, das die auszuführenden Befehle ähnlich wie Batch-Skripte setzt?

PS: Dies ist etwas ähnlich zu Stack Overflow Frage Executing MSYS from cmd.exe with arguments.

Antwort

10

Nicht ein MSYS-Experte, aber etwas tut, wie diese Arbeit für Sie:

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

Ja, es funktioniert! Thanks a bund :) –

6

Sie haben keine bash verwenden make auszuführen, oder einen der anderen MSYS Programme. Wenn Sie das Verzeichnis MSYS bin auf Ihren Pfad setzen, können Sie sie über eine Windows-Befehlsshell ausführen. Alternativ hat die Bash-Shell eine enorm leistungsfähige Skriptsprache. Aber ich bin mir nicht sicher, ob Sie das fragen - Sie sollten Ihre Frage mit einem konkreten Beispiel erläutern, was Sie tun möchten, indem Sie die gewünschten Schritte festlegen automatisiert.

Mein eigenes Setup ist ein Windows Explorer-Kontextmenü namens "Bash here", das eine Bash-Shell in dem von mir ausgewählten Verzeichnis öffnet. Dies geschieht über die folgenden Registrierungseinträge vorgenommen:

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

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

und die folgende bash.cmd Datei in c ::

@echo off 
title bash 
cd %1% 
bash 

Beachten Sie, dass die MSYS ist auf meinem Weg. Und natürlich geschieht jedes Hacking auf eigene Gefahr.

+0

Das funktioniert gut, obwohl ich/k anstelle von/c für die Konsole verwenden musste, um offen zu bleiben. –

0

Auf meinem MSYS-1.0.11 mit den MSYS Entwickler-Pakete, kann ich ein Bash-Skript aufrufen (CurrentScript.sh) mit einer cmd/Bat-Datei im aktuellen Ordner mit diesem Befehl:

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