2016-07-30 43 views
-2

我運行批處理(這是不同的文件夾的python腳本中)的使用下面的代碼行:批行事就像是在腳本的文件夾

subprocess.Popen("the_bat.bat", creationflags=subprocess.CREATE_NEW_CONSOLE) 

的作業批處理是啓動一個.jar(與批處理相同的目錄),它在它的目錄中創建文件夾和文件,但是當由python腳本運行時,jar開始在腳本的文件夾中執行它。 有關如何防止這種情況的任何建議?

+2

批處理文件是'%0'參數。 'Echo%〜dp0'將打印批處理文件的文件夾。看到'call /?'。 – 2016-07-30 21:50:56

+0

從中加載程序的目錄與當前目錄不同。你可以通過'cwd'參數設置子進程的當前工作目錄爲'Popen'。 – cdarke

+0

下次使用代碼格式 –

回答

0

這是因爲bash腳本是在Python的工作目錄中執行的,這使得bash腳本的工作目錄與Python的工作目錄相同。您可以通過將當前工作目錄傳遞給subprocess.Popen來解決此問題。

subprocess.Popen(r'your script', cwd=r'd:\the\working\directory\you\want\or\root')

相關問題