通过python将参数传递到批处理文件

2024-06-25 23:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将参数发送到批处理文件。

我有一个批处理文件HelloWorld.bat,它要求在脚本的不同点上总共输入4个。我试过使用subprocess.Popen、subprocess.call和os.system,但未能传入参数。这就是我目前所拥有的:

p = subprocess.Popen(shlex.split("cmd"), shell = True, stdin = subprocess.PIPE)
p.communicate(
     "cd " + filepath + "\n" +
     "HelloWorld.bat\n" +

     "arg1\n" +
     "arg2\n" +
     "arg3\n" +
     "arg4\n"
 )

当我运行这段代码时,它说的是错误的命令语法。我是否可以将参数传递给将在cmd中运行的批处理文件?

谢谢!


Tags: 文件脚本cmd参数osshellcallsystem
1条回答
网友
1楼 · 发布于 2024-06-25 23:27:38

对于Windows,您不需要shell=True,只需按如下顺序传递参数:

executable = os.path.join(filepath, 'HelloWorld.bat')
p = subprocess.Popen([executable, 'arg1', 'arg2', 'arg3', 'arg4'])

documentation中有很多关于子流程模块的信息,我建议您仔细阅读它,因为如果不小心,您可以轻松地对系统进行软管连接。

相关问题 更多 >