从python调用命令行以使用args以批处理模式执行程序[重复]

Posted

技术标签:

【中文标题】从python调用命令行以使用args以批处理模式执行程序[重复]【英文标题】:Call a command line from python to execute a program in batch mode with args [duplicate] 【发布时间】:2014-11-18 22:09:38 【问题描述】:

我需要在命令行中调用一个将以批处理模式执行的程序。该程序接收到一个扩展名为 .jlink 的文件,其中包含 JLink.exe 程序将执行然后关闭的一系列命令。

我尝试通过以下方式执行:

os.system('C:/SEGGER/JLink_V490d/JLink.exe -CommanderScript D:\Files\CommandFile.jlink')

但是这个命令在正常模式下执行程序,不接受参数。

我怎样才能调用命令行的执行,然后发送该命令,以便程序使用这些参数以批处理模式执行?

【问题讨论】:

***.com/questions/89228/…***.com/questions/14892355/…***.com/questions/16820420/… 【参考方案1】:

使用subprocess:

subprocess.call(["C:\SEGGER\JLink_V490d\JLink.exe", 
                 "-CommanderScript", "D:\Files\CommandFile.jlink"])

您也可以使用 shell=True 直接在 shell 中执行命令(您尝试使用 os.system 执行的操作),但不建议这样做,因为它存在安全隐患。

更多信息在这里: https://docs.python.org/2/library/subprocess.html

【讨论】:

以上是关于从python调用命令行以使用args以批处理模式执行程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python2.7 - 将参数传递给命令行以根据参数过滤CSV

Pentaho - 拥有多个复制行以导致从结果中获取行为空

SWIG 添加行以删除不存在的变量

如何设置 Windows 命令行以使用 php.ini 文件? [复制]

shell从外部读入参数调用另一个shell脚本的问题

以编程方式编写 TFS 命令行以获取最新版本、签出和签入