Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
连续运行多个python程序”;用sys";使用批次_Python_Batch File_Batch Processing - Fatal编程技术网

连续运行多个python程序”;用sys";使用批次

连续运行多个python程序”;用sys";使用批次,python,batch-file,batch-processing,Python,Batch File,Batch Processing,我正在使用基于Windows的PC 我有多个带有“sys”的python程序。我是说这些节目都有这样的台词 import sys input_file = sys.argv[1] output_file = sys.argv[2] 所以我通过运行 python program1.py input1 output1 但是,有一系列python程序,所以如果我只双击一个文件就可以运行所有这些程序,那将非常方便 如何按顺序而不是同时运行它们 我试过这样的方法 start C:\python27\p

我正在使用基于Windows的PC

我有多个带有“sys”的python程序。我是说这些节目都有这样的台词

import sys
input_file = sys.argv[1]
output_file = sys.argv[2]
所以我通过运行

python program1.py input1 output1
但是,有一系列python程序,所以如果我只双击一个文件就可以运行所有这些程序,那将非常方便

如何按顺序而不是同时运行它们

我试过这样的方法

start C:\python27\python.exe program1.py input1 output1
start C:\python27\python.exe program2.py input2 output2
但它不起作用。

主要用于从批处理文件中调用批处理文件或作为子例程运行当前批处理文件中的块

是将任何应用程序作为单独进程启动的命令,这意味着控制台应用程序可以在单独的命令提示符(console)窗口中运行它。从批处理文件中执行的GUI应用程序始终作为单独的进程启动,即使未使用命令start

对于大多数应用程序,运行应用程序会导致停止批处理文件的执行,直到应用程序自行终止。(有些应用程序具有由应用程序本身引起的不同行为。)但使用命令start启动的控制台或GUI应用程序会立即继续批处理文件执行

使用
start/wait…
可以作为单独的进程启动控制台或GUI应用程序,并停止批处理文件的执行,直到应用程序自行终止

start /wait C:\python27\python.exe program1.py input1 output1
start /wait C:\python27\python.exe program2.py input2 output2
在命令提示符窗口中运行
start/?
时,此命令的帮助将打印到输出窗口中

[“title”]
意味着可以选择为新的命令提示符窗口设置标题(仅在启动控制台应用程序时使用)。我在这里提到这一点是因为commandstart可以将命令行中任意位置的双引号中的任何字符串解释为窗口标题。因此,如果要启动的应用程序或其一个参数由于空格字符或其中一个字符而必须用双引号括起来,
&()[]{}^=;!'+`~
在路径或文件名中,最好在命令start之后立即以双引号显式指定标题字符串作为第一个参数,该参数甚至可以是空字符串,如
(最适合GUI应用程序)


这个解决方案本身就是一个python程序。您还可以构造程序名并将其放入循环中。您还可以在程序名后添加一个参数。

尝试
call
而不是
start
@behzad.nouri谢谢@MarkSetchell behzad.nouri的解决方案奏效了。但我对你的解决方案也很好奇。通过“尝试开始/等待”,您建议对代码进行哪些更改?我离开了Mac,但@Mofi在下面做了很好的解释。非常感谢您的正确和详细的回答!我最后检查了它是否适用于按顺序运行python程序。但我仍然不知道如何使用它来顺序运行matlab和python。它至少“打开”了matlab.exe。但是它不“运行”mfile.Mofi,您的解决方案对python和matlab m文件都非常有用。批处理文件能否以一种方式运行它,即以后执行的m-file可以使用以前执行的m-file生成的变量?我在上更详细地解释了这个问题,你为什么不做操作系统('python_1.py')?
start "Python Task 1" /wait "C:\python27\python.exe" program1.py input1 output1
start "Python Task 2" /wait "C:\python27\python.exe" program2.py input2 output2
import os

os.system('python' + ' ' + 'python_1.py')

os.system('python' + ' ' + 'python_2.py')