2010-05-02 114 views
5

我在Windows上使用GCC   7(使用TDM的版本)。我安裝了MSYS,能夠執行Make並使用makefile進行編譯。但是,每次啓動MSYS Bash shell時都會很繁瑣,導航到項目的目錄並運行make從Windows cmd調用MSYS bash

我想要的是自動執行此過程。我更喜歡在Windows中有一個批處理文件,或者類似的東西,然後我調用MSYS Bash shell。它應該導航到批處理文件所在的目錄並呼叫make

這可能嗎?我可以從cmd發送命令給MSYS Bash嗎?(如導航/調用make)?或者,我可以讓MSYS Bash運行一個「Bash腳本」,它將批處理腳本設置爲執行很多命令?

PS:這是類似於堆棧溢出問題Executing MSYS from cmd.exe with arguments

回答

10

不是一個MSYS專家,但確實是這樣的工作你:

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

是它!謝謝一堆:) – 2010-05-02 09:55:32

6

您不必使用bash執行時許,或者任何其他MSYS程序。如果您將MSYS bin目錄放在路徑上,則可以從Windows命令shell執行它們。另外,bash shell有一個非常強大的腳本語言內置。但我不清楚這是否是你問的問題 - 你應該用你想要做什麼的實際例子來澄清你的問題,說明你想要的步驟自動化。

我自己的設置是有一個名爲「Bash here」的Windows資源管理器上下文菜單,它在我選擇的目錄中打開一個bash shell。這是通過以下注冊表項來完成:

[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目錄是我的道路上。當然,任何註冊表黑客都需要您自擔風險。

+0

這很好,但我需要使用/ k而不是/ c控制檯保持打開狀態。 – 2014-07-08 10:21:09

0

在我MSYS-1.0.11與MSYS開發包,我可以在當前文件夾用一個cmd/bat文件調用bash腳本(CurrentScript.sh)使用此命令:

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