ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【Windows】タスクスケジューラでプログラムを自動起動させる

 過去にRaspberry Piでプログラムを自動実行する記事を書きました。

 これと同じようなことがWindowsでもできる仕組みがあります。それがタスクスケジューラです。

 今回はそのタスクスケジューラについての記事になります。


 では、始めます。


1:タスクスケジューラとは
 Windowsのタスクバーにある検索欄に「タスクスケジューラ」と入力すると、以下のようにアプリが出てきます。

 これをクリックして起動すると、以下のようにタスクスケジューラが立ち上がります。

 このタスクスケジューラにタスクを作成して登録することで、決まった時間やログインなどをトリガーとしてプログラムを自動実行することができます。


2:タスクを作成してみる
 では実際にタスクを作成してみます。

 自動実行させたいバッチファイルの内容とパスは以下の通りであるという前提で進めていきます。

・start.bat

echo "test"
pause

・実行したいバッチファイルのパス

C:\test\start.bat

 タスクの作成は、タスクスケジューラの右側のメニューにある「基本タスクの作成」をクリックします。

 以下のようなタスク作成画面が出てくるので、ここではタスクの名前を「テストタスク」、説明には「テストタスクです」と入力して「次へ」ボタンをクリックします。

 トリガー(どのタイミングで実行するか)の設定画面になるので、ここでは「ログオン時」を選択して「次へ」ボタンをクリックします。

 トリガー時にどのような処理を実行するかの画面になるので「プログラムの開始」を選択して「次へ」ボタンをクリックします。

 起動するプログラムの設定画面になるので「参照」ボタンをクリックして対象のプログラムを選択します。ここでは先に挙げたstart.batを選択しています。選択したら「次へ」ボタンをクリックします。

 確認画面が出てくるので、内容を確認して「完了」ボタンをクリックします。あとでまた細かい設定を変更することもできるので、今回はこのまま登録します。

 タスクの作成終了すると、一覧の中に新しく追加したタスクができています。「トリガー」タブや「操作」タブを開くとちゃんと設定したトリガーとプログラムが設定されていることがわかります。


3:タスクの実行確認
 タスクが作成できたので、ちゃんとトリガーのタイミングで実行するかどうかを確認してみます。

 2で作成したのは「ログオン時」をトリガーとするタスクなので、一度ユーザをサインアウトしてからもう一度サインインをするか、PC自体を再起動させて同じユーザでログインすれば確認できます。

 実際にサインアウトしてからもう一度サインインすると、以下のようにコンソールが自動的に立ち上がります。

 この状態でタスクスケジューラを立ち上げて該当タスクを確認してみると、実行結果のところが「現在タスクを実行中です」になっていることがわかります。

 コンソール上で何かキーを入力してタスクを終了させた後、タスクスケジューラの右側メニューにある「最新の情報に更新」をクリックすると、以下のように実行結果が「この操作を正しく終了しました」に変化します。

 今回は正常終了したので実行結果の表示がこのようになりましたが、途中でエラーなどで終了した場合はエラーコードだったり、エラーで終了した旨のメッセージなどが表示されます。


4:タスクの細かい部分の設定変更
 ログオンしてから1分遅れで実行させたいなど、細かい設定変更を行いたい場合があります。

 その場合は、タスクスケジューラでタスクを選択した後右クリックをし、出てきたメニューから「プロパティ」をクリックします。

 タスクのプロパティ画面が開くので、ここで細かい設定変更が行えます。

 今回はログオンから1分遅れで実行させたいので「トリガー」タブを開いて対象のトリガーを選択した状態で「編集」ボタンをクリックします。

 トリガー編集画面が開きます。1分遅れで実行させたいので「遅延時間を設定する」にチェックを入れてプルダウンから遅延させたい時間を設定して「OK」ボタンをクリックします。

 これでログオンしてから1分後に起動させる設定に変更できました。

 その他にもタスク名や実行させたいプログラムの変更などもこのプロパティ画面から行えます。


5:その他タスクに関する情報
 タスクの情報をファイルとして保存しておきたい場合は、タスクを右クリックして出てきた中にある「エクスポート」を選択します。

 これでタスクの情報をxmlファイルとして保存することができます。このxmlファイルをタスクスケジューラに読み込ませることで、同じタスクを再度登録することもできます。

 タスクを削除したい場合は、タスクを右クリックして出てきた中にある「削除」を選択すると削除できます。

 その他、無効にしたり実行したりタスクを右クリックすることで色々と操作ができます。


 以上がタスクスケジューラでプログラムを自動起動させる方法になります。

 色々と細かい設定もできるので、定期的に必ず行うようなプログラムについてはタスクスケジューラで自動起動させると便利かもしれません。