2010-05-02 19 views
5

से एमएसवाईएस बैश को आमंत्रित करना मैं विंडोज   7 (टीडीएम के निर्माण का उपयोग कर) पर जीसीसी का उपयोग कर रहा हूं। मैंने MS12S को Make निष्पादित करने और मेकफ़ाइल का उपयोग करके संकलित करने में सक्षम होने के लिए स्थापित किया। हालांकि, एमएसवाईएस Bash खोल शुरू करने के लिए हर बार थकाऊ है, प्रोजेक्ट की निर्देशिका पर नेविगेट करें और make चलाएं।विंडोज सीएमडी

जो मैं चाहता हूं वह इस प्रक्रिया को स्वचालित करना है। मैं विंडोज़ में बैच फ़ाइल या कुछ ऐसा ही पसंद करता हूं, जिससे मैं एमएसवाईएस बैश खोल का आह्वान करता हूं। इसे बैच फ़ाइल में मौजूद निर्देशिका में नेविगेट करना चाहिए और make पर कॉल करना चाहिए।

क्या यह संभव है? क्या मैं cmd ​​से MSYS Bash को आदेश भेज सकता हूं (जैसे नेविगेशन/make का आविष्कार)? या क्या मैं एमएसवाईएस बैश को "बैश स्क्रिप्ट" चला सकता हूं, जो कमांड को बैच स्क्रिप्ट की तरह निष्पादित करने के लिए सेट करता है?

पीएस: यह स्टैक ओवरफ़्लो प्रश्न 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

हाँ यह करता है! धन्यवाद एक गुच्छा :) –

6

आप मेकअप, या अन्य MSYS प्रोग्रामों में से किसी पर अमल करने बैश उपयोग करने के लिए नहीं है। यदि आप अपने पथ पर MSYS बिन निर्देशिका डालते हैं, तो आप उन्हें Windows कमांड शैल से निष्पादित कर सकते हैं। वैकल्पिक रूप से, बैश खोल में एक विशाल शक्तिशाली स्क्रिप्टिंग भाषा है। लेकिन मैं स्पष्ट नहीं हूं कि आप यही पूछ रहे हैं - आपको अपने प्रश्न को वास्तविक उदाहरण के साथ स्पष्ट करना चाहिए कि आप क्या करना चाहते हैं, जो चरणों को आप चाहते हैं स्वचालित।

मेरा स्वयं का सेटअप "बैश यहां" नामक एक विंडोज एक्सप्लोरर संदर्भ मेनू होना है जो मेरे द्वारा चुने गए निर्देशिका में एक बैश खोल खोलता है। यह निम्न रजिस्ट्री प्रविष्टियों के माध्यम से किया जाता है:

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

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

और ग में निम्नलिखित bash.cmd फ़ाइल ::

@echo off 
title bash 
cd %1% 
bash 

ध्यान दें कि MSYS बिन निर्देशिका मेरी राह पर है। और निश्चित रूप से, किसी भी रजिस्ट्री हैकिंग आपके जोखिम पर है।

+0

यह बहुत अच्छा काम करता है, हालांकि मुझे कंसोल के लिए खुले रहने के लिए/c के बजाय/k का उपयोग करने की आवश्यकता है। –

0

MSYS डेवलपर्स संकुल के साथ मेरी MSYS-1.0.11 पर, मैं एक bash स्क्रिप्ट (CurrentScript.sh) एक cmd/बल्ला फ़ाइल के साथ वर्तमान फ़ोल्डर में इस आदेश के साथ कॉल कर सकते हैं:

R:\MinGW\MSYS-1.0.11\bin\sh "%cd%\CurrentScript.sh" 
संबंधित मुद्दे