Sil*_*ver 46 python batch-file
我尝试.bat使用Python脚本在Windows中运行文件.
ask.bat 文件:
Application.exe work.xml
Run Code Online (Sandbox Code Playgroud)
我写Python代码:
import os
os.system("D:\xxx1\xxx2XMLnew\otr.bat ")
Run Code Online (Sandbox Code Playgroud)
输出:当尝试运行文件时,它只是眨眼命令提示符,并且工作没有执行.
注意:我也尝试使用备用斜杠,但它不起作用.
我还想将文件的输出保存在另一个文件中.
任何人都可以建议我如何让脚本运行.
das*_*zul 34
这已经在SO上得到了详细的回答.看看这个帖子,它应该回答你所有的问题:执行子进程 失败
我自己用这段代码尝试过:
batchtest.py
from subprocess import Popen
p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()
Run Code Online (Sandbox Code Playgroud)
batch.bat
echo Hello World!
pause
Run Code Online (Sandbox Code Playgroud)
我从前面提到的线程获得了batchtest.py示例.
小智 25
import subprocess
filepath="D:/path/to/batch/myBatch.bat"
p = subprocess.Popen(filepath, shell=True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
print p.returncode # is 0 if success
Run Code Online (Sandbox Code Playgroud)
小智 6
在路径中将\替换为\
import os
os.system("D:/xxx1/xxx2XMLnew/otr.bat ")
Run Code Online (Sandbox Code Playgroud)
小智 6
也许最简单的方法是 ->
import os
os.chdir("X:\Enter location of .bat file")
os.startfile("ask.bat")
Run Code Online (Sandbox Code Playgroud)
最好以.bat这样的方式编写文件,使其运行不依赖于当前工作目录,即我建议将此行放在.bat文件的开头:
cd "%~dp0"
Run Code Online (Sandbox Code Playgroud).bat用双引号将文件的文件路径括起来,即:
os.system('"D:\\x\\so here can be spaces\\otr.bat" ["<arg0>" ["<arg1>" ...]]')
Run Code Online (Sandbox Code Playgroud)要将某些批处理命令的输出保存在另一个文件中,您可以使用通常的重定向语法,例如:
os.system('"...bat" > outputfilename.txt')
Run Code Online (Sandbox Code Playgroud)
或直接在您的.bat文件中:
Application.exe work.xml > outputfilename.txt
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
160819 次 |
| 最近记录: |