2016-07-04 47 views
0

我试图编写一个小型python脚本,该脚本允许我将参数传递给命令行对话框,以便运行安装文件。 我想能够传递参数到可执行文件,例如:“setup.exe --uninstall --delete-profile --force -uninstall”python:如何通过命令行将参数正确传递给可执行文件

我试过使用“os.system “模块以及”subprocess.call“模块,但在这两种情况下,脚本都不起作用。
我没有收到错误。相反,该脚本刚刚结束,但安装程序和/或应用程序文件和文件夹不会被删除。
当我手动运行相同的命令(通过命令行)时,应用程序和相关文件被删除。

这里的代码行:

subprocess.call('setup.exe --uninstall --delete-profile --force-uninstall', shell=True) 

我认为这个问题是由于权限(虽然我正在通过与管理员权限IDLE脚本),或者使用“ - ”符号,分开参数(不幸的是,这是安装文件使用的格式)。

任何帮助将不胜感激。

+0

如果没有更多的信息,我们真的不能告诉你什么错。尝试从python终端启动该命令并报告出现的错误。 – Bakuriu

+0

您是否试图通过您的命令作为参数'['setup.exe','--uninstall',...]'的列表并使用'shell = False'(默认值)。 – Bernhard

+0

@Bakuriu,当我从python终端运行“subprocess.call”命令时,一切正常。该命令被执行并且相关文件被删除。但是,如果我通过cmd(“python myscipt.py”)运行脚本,脚本将运行,但文件不会被删除(再次,没有错误,它只是结束)。 –

回答

0

使用此:

subprocess.Popen(['hostname', '-f'], stdout=subprocess.PIPE).communicate()[0] 

您还可以添加其他参数:

subprocess.Popen(['hostname', '-f', '-anotherparam', 'onemoreparam'], stdout=subprocess.PIPE).communicate()[0] 
相关问题