Pages

2022年3月15日火曜日

[Laravel] Windowsにはcronが無いので、タスク スケジューラにscheduleを設定する

Windowsにはcronが無いので、タスク スケジューラに設定するんですが、単純に設定するとコマンドプロンプトのウィンドウが一分毎に立ち上がって文字入力の邪魔をする。。

なので、もうVBSファイルからコマンドプロンプトを実行するようにしてこれを回避。

ついでにPHPのバージョン変更もするように。


手順

  1. VBSファイルを作成
  2. タスク スケジューラに設定

VBSファイルを作成

VPSファイルはどこに置いても大丈夫です。
ただのテキストファイルなのでメモ帳で作成可能です。
拡張子は .vbs

記載内容はこちら

Set ws = CreateObject("Wscript.Shell") 
ws.run "cmd /k set PATH=D:\app\php-8.0.14-nts-Win32-vs16-x64;%PATH% & cd D:\prjects\sample & php artisan schedule:run", 0, false

記載内容の説明
ws.run で 3つのパラメータを指定しています。

1つ目 実行するコマンド
2つ目 ウィンドウオプション 0=表示しない
3つ目 同期指定 false=非同期

つまり 1つ目のコマンドは非表示で勝手に実行しといてくださいって感じです。

run メソッドについて詳しくはこちら

コマンドは & 区切りで複数実行できますので、今回は
  1. PATH の更新
  2. ディレクトリの移動
  3. scheduleの実行
をやっています。


Followers