如何使用批处理文件同时运行多个Python脚本

3

我有许多Python脚本,一个个点击运行它们非常麻烦。如何制作批处理文件一次性运行它们全部?


1
你的开发环境是什么? - Sebastien D
3个回答

6
只需编写一个类似于此的脚本,使每个任务在后台运行(在Windows上):
start /B python script1.py
start /B python script2.py
start /B python script3.py

在*nix上:

python script1.py &
python script2.py &
python script3.py &

假设您的脚本不需要人为干预即可运行。

2
使用start命令来启动一个进程。
@echo off
start "" foo.py
start "" bar.py
start "" baz.py

关于评论:“有没有办法启动这些最小化?”

您可以通过输入命令名称后跟 /? 来了解命令的工作方式。在本例中,start /? 告诉我们它的命令行选项包括:

MIN          Start window minimized.

因此,要启动最小化的应用程序,请使用以下命令:
start "" /MIN quux.py

是的,这很有帮助,有没有办法让它们启动时最小化? - Raebel Christo

1
同时运行多个 .py 文件。为每个 .py 创建一个 .bat 文件来启动 python 文件。在列表的列表中定义所有 .bat 文件。列表中的第二个参数是启动 .bat 文件的延迟时间。不要使用零作为延迟时间。这种方式可以将并行性留给操作系统,从而实现快速和稳定的运行。对于每个 .bat,都会打开一个命令窗口与用户交互。
from apscheduler.schedulers.background import BackgroundScheduler
import datetime as dt
from os import system
from time import sleep

parallel_tasks = [["Drive:\YourPath\First.bat", 1], ["Drive:\YourPath\Second.bat", 3]]

def DatTijd():
    Nu = dt.datetime.now()
    return Nu

def GetStartTime(Nu, seconds):
    StartTime = (Nu + dt.timedelta(seconds=seconds)).strftime("%Y-%m-%d %H:%M:%S")
    return StartTime

len_li = len(parallel_tasks)
sleepTime = parallel_tasks[len_li - 1][1] + 3
Nu = DatTijd()
for x in range(0, len_li):
    parallel_tasks[x][0] = 'start cmd /C ' + parallel_tasks[x][0]
    # if you want the command window stay open after the tasks are finished use: cmd /k in the line above
    delta = parallel_tasks[x][1]
    parallel_tasks[x][1] = GetStartTime(Nu, delta)

JobShedul = BackgroundScheduler()
JobShedul.start()

for x in range(0, len_li):
    JobShedul.add_job(system, 'date', run_date=parallel_tasks[x][1], misfire_grace_time=3, args=[parallel_tasks[x][0]])

sleep(sleepTime)
JobShedul.shutdown()
exit()

Example.bat

echo off
Title Python is running [Your Python Name]
cls
echo "[Your Python Name] is starting up ..."
cd Drive:\YourPathToPythonFile
python YourPyFile.py

请注意,在Example.bat文件中,Python的命令也可能是python3 - kaliiiiiiiii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接