这是我的第一篇文章,我非常认真地使用Python进行编码。 我的目的是调用批处理文件以在Python脚本中执行。
我已经完成了对研究的尽职调查,并发现了 call()方法与库:(来自子进程导入调用),和 os.system()方法与库:( import os)
以下是一些细节:
1.当我手动运行批处理脚本时,它按预期执行每行代码。
2.当我使用上述两种方法之一从Python调用批处理脚本时,部分批处理文件将执行。
以下是批处理脚本中的代码:
@ECHO OFF
ECHO "test" >> file.txt
PAUSE
以下是使用os.system()方法的Python脚本的代码
import os
runfile = "C:\\Data\\Automation\\Test\\run.bat"
os.system(runfile)
print("Hello World")
现在,当我手动运行批处理脚本时,文件会按预期写入我的驱动器(file.txt)。
但是当我运行Python脚本时,批处理文件中的所有代码都会被执行,除了" ECHO" test" >> file.txt的"
真正有趣的是在PyCharm中,批处理文件输出出现在我的状态窗口中!它就像批处理文件中的代码以某种方式集成在Python内部。它不仅会出现,而且还可以与它互动!
所以这是所有步骤:
1.运行Python脚本
2.调用BatchScript
3.问题:file.txt没有写入磁盘
4.输出'按任意键继续。 。 "在Python状态窗口中
5.按Enter
(返回完成执行剩余的Python代码)
6.输出" Hello World"在Python状态窗口中
正如您所看到的,问题是: 手动执行批处理脚本会导致写入file.txt 执行python脚本时不会将file.txt写入磁盘
我希望这是一些可靠的细节,以帮助确定问题所在。
非常感谢您帮助解决这个问题,非常感谢您的所有时间和精力! =)
答案 0 :(得分:0)
我想知道Python脚本启动.bat脚本时当前的工作目录是什么。指定应在与.bat文件脚本相同的目录中创建<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="forumHeader">Forum Header</div>
<div id="content">Some content here</div>
,或指定另一个目录的完整路径。
file.txt
或
@ECHO OFF
ECHO "test" >>"%~dp0file.txt"
PAUSE