1

XAMPP を搭載した Windows 2012R2 マシンが与えられました。毎分実行されるタスクをスケジュールする必要があります。毎分 PHP スクリプトを実行する必要があります。これは正しく構成されています。タスク スケジューラのアクションとして .BAT ファイルを使用しています。

問題は、.BAT ファイルをテストすると、おまじないのように動作することです (.BAT ファイルをそのフォルダーから実行します)。しかし、タスク スケジューラが .BAT ファイルを実行すると失敗します。スクリプトは、PHP スクリプトが呼び出す一部のファイルを含めることができません。これは、タスク スケジューラが PHP スクリプトがあるディレクトリからスクリプトを実行しないためだと推測していますMyIncludes.php

これは私の .BAT コンテンツです (CD コマンドで引用符を使用してもそのままにしても違いはありません):

cd "D:\xampp\htdocs\MyApp\App\Cronjobs\"
"D:\xampp\php\php.exe" -f CronjobBase.php MyCronJob

Cronjobs フォルダーに CD を挿入して、CronjobBase.phpargv[1]を MyCronJob (CronjobBase.php の MyCronJob.php を含める必要があります) として実行しようとしています。CronjobBase.php が見つからないことがわかります。Cronjobs フォルダーへの CD-ing が失敗したと思います。

.BAT コンテンツとして試行する"D:\xampp\php\php.exe" -f D:\xampp\htdocs\MyApp\App\Cronjobs\CronjobBase.php MyCronJobと、「MyIncludes.php」のインクルードが失敗し、スクリプトが終了します。

私が間違っていることについて何か提案はありますか?

4

1 に答える 1

3

これはうまくいくはずです:

cd /D "D:\xampp\htdocs\MyApp\App\Cronjobs\"
"D:\xampp\php\php.exe" -f CronjobBase.php MyCronJob

また:

D:
cd "D:\xampp\htdocs\MyApp\App\Cronjobs\"
"D:\xampp\php\php.exe" -f CronjobBase.php MyCronJob
于 2015-07-30T11:25:00.243 に答える