2012-05-04 63 views
2

我在網上搜索,仍然無法弄清楚。 我很抱歉,如果這聽起來像一個懶惰的呼喊呼救 - 我真的在這個機智的結尾。Cygwin:直接在dos批處理文件中運行bash腳本不起作用

我有位於bash腳本: /cygdrive/k/Linux Scripts/Scripts/filter.sh

我複製到Cygwin.batfilter.bat,並改變它,如下所示:

@echo off 
L: 
chdir L:\Cygwin\bin 
bash --login "/cygdrive/k/Linux Scripts/Scripts/filter.sh amc.txt bmo.txt" 

當我通過雙擊它運行filter.bat在Windows資源管理器中,控制檯瞬間閃爍,然後關閉。該腳本是可以的,因爲它從Cygwin控制檯的命令行運行。

有沒有辦法調試這個問題?

+0

兩個想法:終端可能會關閉,因爲它執行完成就好了。是否沒有像最後添加的「暫停」命令來等待按鍵?其次,文件名中的空間可能會導致問題;嘗試在'/ cygdrive/k/Linux Scripts/Scripts/filter.sh'文件名周圍添加單引號。 – sarnold

+0

@Sarnold。該腳本通常需要大約30秒才能完成,並生成另一個文件。在這種情況下,它什麼都不做。 – Paul

回答

3

嘗試從已存在的命令提示符窗口運行批處理文件,以便您可以看到bash可能發送的任何錯誤消息。我猜測它存在「/ cygdrive/k/Linux Scripts/Scripts/filter.sh amc.txt bmo.txt」的問題 - 就它而言,這是一個參數而不是三個參數。因此,我會改變它

bash --login "/cygdrive/k/Linux Scripts/Scripts/filter.sh" amc.txt bmo.txt 
+0

我試過了。仍然沒有區別。還嘗試了-i選項,如「bash --login -i ...」 – Paul

+0

echristopherson&Sarnold。剛剛意識到我的腳本中有一個錯誤。我用一個反斜槓在路徑名稱中跳過了空格。當我刪除了這個,並使用單引號或雙引號,如你們兩人所建議的,那麼它就起作用了。謝謝! – Paul

+0

優秀!請藉此機會瞭解複製和粘貼您實際嘗試的內容的重要性,而不是重新輸入內容。謝謝! – sarnold

相關問題