2010-05-02 44 views
5

Estoy usando GCC en Windows   7 (usando la compilación de TDM). Instalé MSYS para poder ejecutar Make y compilar usando makefiles. Sin embargo, es tedioso iniciar cada vez el shell MSYS Bash, navegar hasta el directorio del proyecto y ejecutar make.Invocando MSYS bash desde el cmd de Windows

Lo que quiero es automatizar este proceso. Prefiero tener un archivo por lotes en Windows, o algo similar, desde el cual invoco el shell MSYS Bash. Debería navegar hasta el directorio donde reside el archivo por lotes y llamar al make.

¿Esto es posible? ¿Puedo enviar comandos a MSYS Bash desde cmd (como navegación/invocando make)? ¿O puedo dejar que MSYS Bash ejecute un "script Bash", que establece los comandos para ser ejecutados de manera similar a los scripts por lotes?

PD: Esto es algo similar a la pregunta sobre el desbordamiento de la pila Executing MSYS from cmd.exe with arguments.

Respuesta

10

No es un experto MSYS, pero tiene algo así como este trabajo para usted:

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

Sí lo hace! Muchas gracias :) –

6

Usted no tiene que usar bash para ejecutar marca, o cualquiera de los otros programas Msys. Si coloca el directorio MSYS bin en su ruta, puede ejecutarlos desde un shell de comandos de Windows. Alternativamente, el shell bash tiene un lenguaje de scripting enormemente poderoso incorporado. Pero no estoy seguro si eso es lo que está preguntando: debería aclarar su pregunta con un ejemplo real de lo que quiere hacer, deletreando los pasos que desea automatizado

Mi propia configuración es tener un menú contextual de Windows Explorer llamado "Bash aquí" que abre un shell bash en el directorio que selecciono. Esto se realiza mediante las siguientes entradas de registro:

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

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

Y el siguiente archivo en bash.cmd c ::

@echo off 
title bash 
cd %1% 
bash 

Tenga en cuenta que el directorio bin MSYS está en mi camino. Y, por supuesto, cualquier piratería de registro es bajo su propio riesgo.

+0

Esto funciona muy bien, aunque necesitaba usar/k en lugar de/c para que la consola permanezca abierta. –

0

En mi MSYS-1.0.11 con los paquetes de desarrolladores Msys, puedo llamar a un script bash (CurrentScript.sh) con un archivo cmd/bat en la carpeta actual con este comando:

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