タスクスケジューラを使ってバッチファイルを実行してみた

bat bat

タスクスケジューラは決まった時間にプログラムなどを実行することが可能な機能です。

そのタスクスケジューラを使って毎日決まった時間にバッチファイルを実行してみました

今回は毎日 08:00 にテキストファイルに aaa という文字列を追記するという設定を入れます。
また、ユーザがログインしていなくても自動的に実行されるような設定もしていきます。

広告

バッチファイルの準備

まず、以下の内容を記載したバッチファイルを用意します。

・test.bat

echo aaa >> test.txt

このバッチファイルと同じフォルダにある「test.txt」に aaa を追記するコマンドです。
 ※ファイルがなければ新規作成されます。

今回はバッチファイルを「C:\hogehoge」というフォルダに用意します。

C:\hogehoge>dir

 C:\hogehoge のディレクトリ

2022/09/15  00:17    <DIR>          .
2022/09/15  00:16                20 test.bat
               1 個のファイル                  20 バイト
               1 個のディレクトリ  121,765,572,608 バイトの空き領域

C:\hogehoge>

タスクスケジューラを設定する

タスクスケジューラを設定していきます。

・「Windowsキー」+「R」を押して、「taskschd.msc」と入力し、「OK」をクリックします。

「Windowsキー」+「R」を押して、「taskschd.msc」と入力し、「OK」をクリック

・タスクスケジューラの設定画面が開くので、「タスクスケジューラ(ローカル)」をクリックして「基本タスクの作成…」をクリックします。

「タスクスケジューラ(ローカル)」をクリックして「基本タスクの作成…」をクリック

・「基本タスクの作成ウィザード」が開くので、「名前」に任意の名前を入力します。

「名前」に任意の名前を入力

・「トリガー」設定で、どのくらいの頻度で実行するのか選択します。
 今回は「毎日」を選択します。

どのくらいの頻度で実行するのか選択

・このタスクの開始日時を選択します。
 過去日を設定することで設定した日から実行することが可能です。
 今回は [2022/04/01] という明らかに過去の日付を入力しています。

タスクの開始日時を選択

・どんな操作をするかを選択します。
 今回はバッチファイルを実行させるので「プログラムの開始」を選択します。

どんな操作をするかを選択

・実行させるプログラムのパスを入力します。
 また、「開始(オプション)」の設定で、バッチファイルが存在するパスを入力します。

 このオプションを指定しないとバッチファイルは正常に実行されませんので注意してください。

実行させるプログラムのパスを入力

・「完了」画面で [完了] をクリックしたらタスクの作成は完了です。

「完了」画面で [完了] をクリック

ユーザがログインしていなくても自動実行されるように設定する

・作成したタスクを選択して「プロパティ」をクリックします。

作成したタスクを選択して「プロパティ」をクリック

・「全般」タブで「ユーザーがログオンしているかどうかにかかわらず実行する」を選択します。

「全般」タブで「ユーザーがログオンしているかどうかにかかわらず実行する」を選択

上記画面で「OK」クリック後、以下のようにユーザのPW入力を求められるので、入力します。

ユーザのPW入力を求められるので、入力する

これでタスクスケジューラの設定は完了です。

毎日 08:00 にテキストファイルに aaa という文字列を追記
ユーザがログインしていなくても自動的に実行されます。

実際に実行してみる(手動実行で確認)

まず、タスクスケジューラが正常に動くのかを手動実行で確認してみます。

・タスクを右クリックして「実行する」をクリックして実行させます。

タスクを右クリックして「実行する」をクリックして実行

実行後にバッチファイルが存在するフォルダを確認してみると、
「test.txt」が作成され、テキストファイルの中身も [aaa] と記載されていることが確認できました。

「test.txt」が作成され、テキストファイルの中身も [aaa] と記載されていることが確認できた

これで、タスクスケジューラが実行されるとバッチファイルが正常に実行されることが分かりました。

自動で実行されたことを確認する

さいごに、実際に自動で実行されるのかを確認します。

今回だと設定した時間以降にテキストファイルに追記されていることを確認すればよいですが、タスクスケジューラ上でも「履歴」を見ることで実行されたのかを確認することができます。

ですが、その前に「履歴」はデフォルトでは [無効] になっているので有効化させる必要があります。

・「すべてのタスク履歴を有効にする」をクリックします。

「すべてのタスク履歴を有効にする」をクリック

すると以下のように「履歴(無効)」から「履歴」に表示が変わり履歴が表示されるようになります。

「履歴(無効)」から「履歴」に表示が変わり履歴が表示されるようになる

この状態で設定した日時以降に履歴を見ると、
タスクスケジューラで設定した時間に実行されていることが確認でき、

タスクスケジューラで設定した時間に実行されていることを確認

実際にテキストファイルを見てみると [aaa] の文字が追記されていることも確認できます。

テキストファイルで [aaa] の文字が追記されていることも確認

さいごに

この記事の中ではさらっと書いていますが、開始のオプションにパスを指定する部分が最も苦戦しました。

ですが何とか解決できてよかったです。^^

タイトルとURLをコピーしました