2015-11-06 23 views
2

非常有名。如果我要手動執行此操作,我首先會打開一個Cygwin終端(應該是/cygwin/bin/mintty.exe),然後在該終端中,cd到具有python腳本的目錄,然後執行python腳本通過做「python myPython.py」。我想知道是否可以編寫批處理腳本或bash腳本來執行此操作:啓動Cygwin終端,cd到目錄,在目錄中執行python腳本。 謝謝。如何編寫一個批處理(Windows)啓動Cygwin(mintty.exe)然後執行一個python腳本?

編輯: 因此,我有一個python腳本,通過mongodb爲活動生成csv文件。如果我通過Windows cmd運行它,此腳本將不起作用。我必須在cygwin終端(mintty.exe)中運行它。因此,任何執行python腳本的替代方法都不起作用。我必須以某種方式啓動一個Cygwin終端並通過那裏執行python腳本。請有任何想法嗎?謝謝。

回答

1

根據您的需要,最好啓動mintty(創建一個新窗口),而不是在cmd.exe窗口中啓動bash。

如果您想使用ansi轉義序列,那麼它對於真正的mintty窗口來說效果會更好,因爲cmd窗口會忽略窗口大小調整和定位的轉義序列。

start "" C:\cygwin\bin\mintty --exec ./myProgramToExecute.sh 
+0

我試過了。我注意到,如果我執行命令「開始」「C:\ cygwin64 \ bin \ mintty.exe」,我將啓動一個新窗口。但是,sys.platform的返回值仍然是「win32」。有沒有什麼可以在windows cmd中啓動mintty.exe並獲得一個在「cygwin」平臺下的新窗口? –

+0

P.S如果我只需點擊cygwin終端圖標,我將在平臺「cygwin」下啓動一個mintty.exe。 –

+1

你確定你正在Cygwin上運行'python'嗎?我猜你正在運行爲Windows而不是Cygwin構建的'python'。這將顯示這些結果。 – lit

1

您可以從Windows終端啓動bash,並從那裏啓動腳本(無需啓動mintty.exe)。從Windows cmd提示符或批處理文件執行

bash -c "cd /your/directory && python myPython.py" 

+0

你可能需要考慮增加'-l'(登錄shell)選項來砸... – anishsane

+0

很抱歉的混亂。請參閱編輯的感謝! –

相關問題