2010-05-02 15 views
5

Sto utilizzando GCC su Windows   7 (utilizzando la build di TDM). Ho installato MSYS per poter eseguire Make e compilare utilizzando makefile. Tuttavia, è sempre noioso avviare la shell MSYS Bash, accedere alla directory del progetto ed eseguire make.Invocazione di MSYS bash da Windows cmd

Quello che voglio è automatizzare questo processo. Preferisco avere un file batch in Windows, o qualcosa di simile, da cui poi invoco la shell MSYS Bash. Dovrebbe passare alla directory in cui risiede il file batch e chiamare make.

È possibile? Posso inviare comandi a MSYS Bash da cmd (come la navigazione/invocazione make)? O posso lasciare che MSYS Bash esegua uno "script Bash", che imposta i comandi da eseguire in modo simile agli script batch?

PS: è simile alla domanda Stack Overflow Executing MSYS from cmd.exe with arguments.

risposta

10

non sono un esperto MSYS, ma fa qualcosa di simile a questo lavoro per voi:

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

Sì lo fa! Grazie mille :) –

6

Non è necessario usare bash per eseguire marca, o uno qualsiasi degli altri programmi MSYS. Se metti la directory bin MSYS sul tuo percorso, puoi eseguirli da una shell dei comandi di Windows. In alternativa, la shell bash ha un linguaggio di scripting enormemente potente incorporato. Ma non sono chiaro se è quello che stai chiedendo - dovresti chiarire la tua domanda con un esempio reale di ciò che vuoi fare, spiegando i passaggi che vuoi automatizzato.

La mia configurazione è di avere un menu di scelta rapida di Windows Explorer chiamato "Bash qui" che apre una shell bash nella directory che seleziono. Questo viene fatto tramite le seguenti voci di registro:

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

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

E il seguente file bash.cmd in c ::

@echo off 
title bash 
cd %1% 
bash 

Nota che la directory bin MSYS è sul mio cammino. E, naturalmente, qualsiasi hacking del registro è a proprio rischio.

+0

Funziona alla grande, anche se avevo bisogno di usare/k invece di/c perché la console rimanesse aperta. –

0

Sul mio MSYS-1.0.11 con i pacchetti sviluppatori MSYS, posso chiamare uno script bash (CurrentScript.sh) con un file cmd/bat nella cartella corrente con questo comando:

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