Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一cmd提示符-Python中运行多个命令_Python_Windows_Batch File_Cmd - Fatal编程技术网

在同一cmd提示符-Python中运行多个命令

在同一cmd提示符-Python中运行多个命令,python,windows,batch-file,cmd,Python,Windows,Batch File,Cmd,我需要对目录中的多个文件运行sayCOMMAND-1一次和SET-OF-COMMANDSos.system或subprocess.Popen,但不知何故,我无法将其应用到我的用例中 我应该有一个cmd promt来打开服务器的一侧,并打开另一个命令提示符,该提示符在目录中的文件上运行多个命令循环 这是我的尝试- def main(): # some code ----- ----- os.chdir('foo.bat directory') # STA

我需要对目录中的多个文件运行say
COMMAND-1
一次和
SET-OF-COMMANDS
<这里可以使用code>os.system或
subprocess.Popen
,但不知何故,我无法将其应用到我的用例中

我应该有一个cmd promt来打开服务器的一侧,并打开另一个命令提示符,该提示符在目录中的文件上运行多个命令循环

这是我的尝试-

def main():
    # some code
    -----
    -----

    os.chdir('foo.bat directory')

    # START SERVER CMD
    process1 = subprocess.Popen('start cmd /K', stdin=subprocess.PIPE, shell=False, encoding='utf8')
    process1.communicate(input='foo.bat -s 12345')

    # START CLIENT COMMANDS
    process2 = subprocess.Popen('start cmd /K', stdin=subprocess.PIPE, shell=False, encoding='utf8')

    for file in os.listdir(dir_location):
          if file.endswith(".ext"):
                 # SET-OF-COMMANDS on each file
                 process2.communicate(input='foo.bat -c 12345 xyz')
                 process2.communicate(input='foo.bat -c 12345 abc')
                 process2.communicate(input='foo.bat -c 12345 fgh')
process.communicate
对我不起作用,我得到一个挂起的命令提示符,没有任何错误。我遗漏了什么吗

我甚至尝试在批处理文件中包含所有命令,但约束是
COMMAND-1
不能在循环中


非常感谢您的帮助。

好的,但是您需要展示如何构造command-1 2 etc
command
,如图所示,这里有一个简单的单行widows shell命令,它触发了一个带有arguments@GerhardBarnard我已经试着按照你的建议编辑了
importos
,然后是
os.system(r“xyz.bat读取%s&&xyz.bat更改%s&&xyz.bat调用%s…”
也许吧?试着在每个
.bat
文件前面加上,并用
&
替换每个
&
文件。好的,但您需要说明如何构造command-1 2 etc
命令
,如图所示,这是触发
.bat
文件的简单的单行widows shell命令arguments@GerhardBarnard我试着以p的身份编辑er您的建议是导入操作系统,然后导入操作系统(r“xyz.bat读取%s&&xyz.bat更改%s&&xyz.bat调用%s…)也许吧?试着在每个
.bat
文件前面加上
替换每个
&
。。。