2012-08-09 61 views
3

我正在使用Windows XP操作系統,並且cygwin安裝在我的C驅動器中。登錄到Cygwin並使用Windows中的bat文件執行命令

我需要直接登錄到我的目錄路徑,其中包含一個makefile,也是一個名爲build.sh在同一目錄中的bash腳本。所以我修改了原始的cygwin.bat文件並添加了如下所示的行。

@echo off 

C: 
chdir C:\cygwin\bin 

bash --login "/cygdrive/E/scheme_31july/build/build.sh" 

當我雙擊此bat文件,我可以看到我的腳本執行,但不是在Cygwin的外殼,但在Windows上運行cmd shell,結果我得到的錯誤爲「make」命令,如「沒有規則,使目標」正如make與cygwin捆綁在一起。

當我使用默認的cygwin.bat文件顯式地登錄到cygwin並通過在cygwin shell中提供以下命令來執行我的腳本時,腳本執行時沒有錯誤。

基本上我想要寫一個bat文件,這樣我可以在我的電腦隨時隨地保持它以取代手工openeing cygwin的提示,你鍵入命令:

$ cd /cygdrive/E/scheme_31july/build/ 
$ sh build.sh 

它應該自動發生。我可以這樣做。

問候, Harshit

回答

3

No rule to make target聽起來更像做出錯誤的目錄執行。 make本身似乎可用並按預期運行。

試試這個:

bash --login -c "cd /cygdrive/E/scheme_31july/build/ && sh build.sh" 

這應該啓動一個會話--login(這應該給你訪問到所有的設置和工具,你會在一個cygwin提示符環境預期),然後執行給定的shell命令,這是你要求的cd和sh。您也可以將這兩行寫入單獨的腳本文件,並將其名稱傳遞給bash,而不是完整路徑至build.sh

您也可以嘗試將cd轉換爲bat文件中的C:\scheme_31july\build,然後從那裏執行bash。不確定bash是否會在進入登錄會話後嘗試更改路徑。如果沒有--login,這個方法和上面的方法都可以使用,你可以嘗試一下。

@echo off 
C: 
cd C:\scheme_31july\build 
C:\cygwin\bin\bash.exe ./build.sh 

我不確定是否希望會話在此之後轉爲互動。在上述情況下,腳本完成後bash將終止,甚至可能關閉窗口。您可能需要將read添加到build.sh以避免這種情況。如果您想要bash在執行某些命令後轉爲交互式,則可以嘗試使用bash的--rcfile選項執行某些命令,然後轉爲交互式。

相關問題