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個のスクリプトすべてを実行できましたが、すべてのスクリプトを処理するように1つのバッチファイルを構成してから、このファイルを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 に答える