0

我有 80 个我想运行的 PHP 脚本。我想启动Script1等到它完成启动script2 ...

现在,如果我添加以下内容:

start C:\xampp\php\php.exe -f C:\xampp\Script1.php
start C:\xampp\php\php.exe -f C:\xampp\Script2.php
start C:\xampp\php\php.exe -f C:\xampp\Script3.php

当我执行批处理文件时,它将同时运行所有脚本。

我可以在我的 bat 文件中使用任何命令来告诉系统等到脚本完成然后执行之后的命令吗?无论如何设置脚本之间的时间间隔?

我可以在 cron 选项卡中运行所有 80 个脚本,但是,我宁愿配置一个批处理文件来处理所有脚本,然后将此文件分配给 crontab。

谢谢

4

2 回答 2

1

start异步触发任务,因此它们将同时运行。使用/wait标志启动任务并等待它完成。

例如

start /wait C:\xampp\php\php.exe -f C:\xampp\Script1.php
start /wait C:\xampp\php\php.exe -f C:\xampp\Script2.php
start /wait C:\xampp\php\php.exe -f C:\xampp\Script3.php

或者,正如 Marc B 所说,删除 start 调用也应该给你顺序执行。

于 2013-01-29T19:26:18.387 回答
0

正如 Joseph Sibler 所建议的,您可以制作一个按顺序调用它们的 PHP 文件。您甚至可以使用 xargs 之类的东西(在带有 mingw32、cygwin 和可能其他来源的 Windows 上可用)生成该 PHP 文件。

这样的事情应该这样做:

del single.php
dir /b Script*.php | xargs cat >> single.php
start c:\xampp\php\php.exe -f single.php
于 2013-01-29T19:19:52.367 回答