簡體   English   中英

啟動另一個目錄中與Python腳本不同目錄中存儲的批處理文件

[英]Launch a batch file stored in different directory from Python script in another directory

我創建了一個Python腳本,該腳本需要根據某些條件啟動.bat文件。

Python腳本位置: \\ Component \\ myScript.py

批處理文件位置: \\ Component \\ MS20160825 \\ toExecute.bat
批處理文件在內部使用 \\ Component \\ bin \\中的 一些可執行文件

我該怎么做以下:

  1. 從Python腳本啟動.BAT文件,以便.BAT成功執行。 BAT文件應該能夠在\\ Component \\ bin \\目錄中找到可執行文件以執行其任務並產生所需的結果。

  2. 保持Python腳本執行,直到.BAT完成執行。

  3. .BAT文件具有pause> nul語句。 我需要繞過它,這意味着從Python腳本執行.BAT時,不應等待用戶按下Enter鍵,而應在執行倒數第二條語句后正常終止。 因為同一個.BAT文件需要多次執行。

應該解決您遇到的所有問題!

import subprocess

p = subprocess.Popen('batch.bat', shell=True, stdin=subprocess.PIPE)
stdout, stderr = p.communicate()

感謝所有人的積極建議。
經過較小的修正,以下代碼為我工作:

import subprocess

batchFileLocation = 'Component\\MS20160825'
batchFileFullPath = os.path.join(batchFileLocation, 'toExecute.bat')

p = subprocess.Popen(os.path.abspath(batchFileFullPath), stdin=subprocess.PIPE, cwd = batchFileLocation)
stdout,stderr = p.communicate()

這里的cwd參數非常重要,需要使用放置批處理文件的位置進行更新,然后只有批處理文件才能正確執行。

在那之后,只有批處理文件將能夠搜索執行它所需的二進制文件(在這種情況下,放置在類似Component \\ bin \\的其他目錄中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM