Python 3.x 如何在同一shell中使用python在cmd中执行多个windows命令
我想一个接一个地执行一些命令,并将其存储到同一shell中的变量中。每当我尝试执行下一个命令时,它都会在新的shell中执行Python 3.x 如何在同一shell中使用python在cmd中执行多个windows命令,python-3.x,shell,subprocess,command-line-arguments,Python 3.x,Shell,Subprocess,Command Line Arguments,我想一个接一个地执行一些命令,并将其存储到同一shell中的变量中。每当我尝试执行下一个命令时,它都会在新的shell中执行 import subprocess cmd1 = 'cd C:\\Program Files (x86)\\openvpn\\bin\\' output = subprocess.getoutput(cmd1) # it goes to the above directory cmd2 = 'openvpn.exe --help' output2 = subproce
import subprocess
cmd1 = 'cd C:\\Program Files (x86)\\openvpn\\bin\\'
output = subprocess.getoutput(cmd1) # it goes to the above directory
cmd2 = 'openvpn.exe --help'
output2 = subprocess.getoutput(cmd2)
在cmd2上,当它运行时,一个新的shell将执行此命令并告知--
“openvpn.exe”未被识别为内部或外部命令,
可操作的程序或批处理文件
我想一个接一个地执行两个命令,并将它们存储到变量中。因此,我可以在其他命令中使用该变量。您应该使用
run
方法,如下所示:
output = subprocess.run(['openvpn.exe', '--help'], cwd='C:\\Program Files (x86)\\openvpn\\bin\\', capture_output=True)
- cwd=当前工作目录(命令应在何处运行)
- capture_output=记录标准输出、标准数据流
output.stdout # will give you back the output of the command.
您没有得到任何结果,因为
cd
命令在子流程中无效。它首先与cd
的工作方式有关-任何进程都不能更改另一个进程的工作目录。您应该使用run
方法,如下所示:
output = subprocess.run(['openvpn.exe', '--help'], cwd='C:\\Program Files (x86)\\openvpn\\bin\\', capture_output=True)
- cwd=当前工作目录(命令应在何处运行)
- capture_output=记录标准输出、标准数据流
然后,您可以在stdout、stderr属性中访问结果:
output.stdout # will give you back the output of the command.
您没有得到任何结果,因为cd
命令在子流程中无效。这首先与cd
的工作方式有关-任何进程都不能更改另一个进程的工作目录。简单的方法是将所有命令放入一个文件(tmp.cmd
)然后运行该文件。我想一个接一个地执行多个命令,以便存储到变量中,并且我必须在其他命令中使用一些变量。再次,将所有这些命令放入tmp.cmd
,然后从Python运行tmp.cmd
。另一种方法是在Python中执行os.chdir()
。可怕的版本是使用Pexpect
模块模拟shell的输入。简单的方法是将所有命令放在一个文件中(tmp.cmd
)然后运行该文件。我想一个接一个地执行多个命令,以便存储到变量中,并且我必须在其他命令中使用一些变量。再次,将所有这些命令放入tmp.cmd
,然后从Python运行tmp.cmd
。另一种方法是在Python中执行os.chdir()
。可怕的版本是使用Pexpect
模块模拟shell的输入。