【问题标题】:Calling a Batch File in Python Does Not Properly Execute在 Python 中调用批处理文件无法正确执行
【发布时间】:2018-04-21 15:02:02
【问题描述】:

这是我的第一篇文章,我对 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.按回车

(返回完成余下的Python代码执行)

6、在Python状态窗口中输出“Hello World”

如您所见,问题是: 手动执行批处理脚本会导致 file.txt 被写入 其中python脚本的执行不会将file.txt写入磁盘

我希望这是一些可靠的细节,可以帮助确定问题所在。

非常感谢您为此提供的帮助,非常感谢您所有的时间和努力!!! =)

【问题讨论】:

    标签: windows python-3.x batch-file cmd pycharm


    【解决方案1】:

    我想知道在 Python 脚本启动 .bat 脚本时您当前的工作目录实际上是什么。指定 file.txt 应与 .bat 文件脚本创建在同一目录中,或指定另一个目录的完整路径。

    @ECHO OFF
    ECHO "test" >>"%~dp0file.txt"
    PAUSE
    

    @ECHO OFF
    ECHO "test" >>"%USERPROFILE%\file.txt"
    PAUSE
    

    【讨论】:

    • 非常感谢您对此的帮助,一切正常! :)
    猜你喜欢
    • 2019-12-02
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多