首页 > 解决方案 > 在特定位置打开命令提示符,然后使用 python 在该位置运行带有一些命令行参数的脚本

问题描述

我能够使用 subprocess 模块打开命令提示符并将目录更改为所需位置,但我无法传递更多参数来运行应用程序以及一些命令行参数。我是 subprocess 模块的新手,所以我对 stackoverflow 进行了一些搜索,但找不到所需的结果。

我的代码:

import subprocess
path = r"C:/Users/Application_Folder"
p = subprocess.Popen(r"cmd.exe", cwd="C:/Project_Files", shell=True)

期望的输出:

Path: C:\Users\Application_folder\Application.exe
Need to open the cmd prompt in windows at the Application_folder location, 
run the Application.exe by passing some command line arguments, using python

标签: pythoncommand-line-argumentscommand-prompt

解决方案


只需传递您实际要执行的命令行、可执行路径和您要传递的任何参数:

command_line = [r'C:\Users\Application_Folder\Application.exe', '/argument1', '/argument2']
p = subprocess.Popen(command_line, cwd=r'C:\Project_Files')

要记住的几点注意事项:

  • 不应该使用shell=True. 这里没有必要——事实上它几乎从来没有必要——但它确实会带来潜在的安全风险。
  • 原始字符串文字(以r'or开头r")的全部意义在于更改字符串中反斜杠字符的解释方式。r'C:\Program Files'与 完全相同的字符串"C:\\Program Files"。如果您的字符串中没有反斜杠,请不要使用r前缀。

推荐阅读