使用Python运行.bat文件

时间:2017-05-30 08:07:26

标签: python windows python-2.7 batch-file

我有一个批处理文件,我用它来加载一些预构建二进制文件来控制我的设备。 它的命令是:

cd build
java -classpath .;..\Library\mfz-rxtx-2.2-20081207-win-x86\RXTXcomm.jar -
Djava.library.path=..\Library\mfz-rxtx-2.2-20081207-win-x86 tabotSample/Good1
pause

现在,我想使用Python运行批处理文件,我尝试os.system(batch,bat),我尝试使用Popen

import os from subprocess import Popen os.popen("cd TAbot") r=os.popen("hello.bat")

然而,python控制台(Anaconda python 2.7)似乎执行了代码,但没有返回任何内容,也没有任何反应。 我想从python运行这个批处理文件,请帮帮我。 顺便说一句,我尝试了另一个批处理文件,如, echo Hello但没有任何反应。

4 个答案:

答案 0 :(得分:0)

我认为这应该是这样的:

<强> batch.py​​

echo Hello World!
pause

<强> test.bat的

Run keyword if  '${user_check}' == 'yes'
...  Run Keywords
     ...  Validate User Record
          ...  ${created_at}
          ...  ${create_or_update_in_db}
          Validate User Audits Record
          Validate User Sponsor Assignments Record
          Validate User Sponsor Assignment Audits Record

答案 1 :(得分:0)

这是一个简单的解决方案。

from subprocess import Popen
import subprocess

def run_batch_file(file_path):
    Popen(file_path,creationflags=subprocess.CREATE_NEW_CONSOLE)

run_batch_file('file_name.bat')

<强> file_name.bat

echo .bat file running from python
pause

答案 2 :(得分:0)

您也可以使用此

import subprocess
subprocess.call(["C:\\temp\\test.bat"], shell=False)

<强> test.bat的

copy "C:\temp\test.txt" "C:\temp\test2.txt"

答案 3 :(得分:0)

许多人提出了非常有用的解决方案,但我想指出该程序位于何处的重要性。 (蝙蝠文件通常是为自动化任务而制作的,以减少时间,这很有可能会执行一些与任务相关的路径)

import subprocess

os.chdir("YOUR TARGET PATH")

exit_code = subprocess.call(FILEPATH)# FILEPATH is from the standpoint on YOUR TARGET PATH