wet-to-dry’s blog

京大大学院生の備忘録ブログ

タスクスケジューラでbatファイルを自動実行し、メッセージボックスを出して帰宅を促す

概要

パソコン作業してると、つい時間を忘れて23時まで作業してしまう、、、

翌日は6時から実験なのに!どうしよう!ってことありませんか???

僕はあります。

なので、安心と信頼のwindows君に帰宅管理してもらおうと思いました。

やることは簡単。アラートメッセージを出すbatファイルをどこかに保存しておいて、タスクスケジューラ*1で21:00とかに起動するようにしました。

目次

やったこと

メッセージボックスを出すbatファイルを作成する

このサイトを参考にした。

snjx.info

piyopiyocs.blog115.fc2.com

batファイルは以下の通り。

@echo off

if not "%HOGE%"=="hoge" (
    set HOGE=hoge
    start /min cmd /c,"%~0" %*
    exit
)

echo msgbox "21時になりました。",vbCritical,"時刻" > %TEMP%/msgboxtest.vbs & %TEMP%/msgboxtest.vbs

このファイルをkitaku.batという名前を付けて好きなディレクトリに保存。

また、最初は文字コードUTF-8になっててwindowsが読み込まなかったので、以下のサイトを参考にVSCodeでShift-JISに直した。

qiita.com

qiita.com

具体的には、files.autoGuessEncodingをチェックして文字コードを確認(右下のタブに出てくる)→タブのUTF-8をクリックしReopen with Encodingでshift-JISを選択

タスクスケジューラで定時にbatファイルを自動実行させる

このサイトを参考にした。

qiita.com

  1. Windowsキー&R
  2. taskschd.mscと打つ
  3. タスクスケジューラライブラリを右クリックし、新しいフォルダ(僕はMySchedule)を作成
  4. MyScheduleを右クリック→タスクの作成
  5. 名前: kitaku.batの実行、セキュリティオプションはログオンしているときのみ(一応、構成はwindows10にした)
  6. トリガータブで新規→自分の好きなスケジュールを作成(僕は1日1回、21:00)
  7. 操作タブで新規→操作はプログラムの開始、参照からさっき作ったbatファイルを選ぶ

あとがき

プロンプトを完全に表示させずにメッセージボックス出すのができなさそうだったので、最小化で妥協しました。

ならプロンプトにメッセージを表示すればよかったのでは、、、???

2023/08/08追記

batファイルじゃなくて途中で作成するvbsファイルを直接呼び出せばよかった。。。

下記のように変更しました。

1 msgboxtext.vbsという名前で以下を保存(VBSはShift-JIS以外にUTF16-LEも使えるらしいので、UTF16-LEにすれば絵文字も打てる)

msgbox "21時になりました。" & vbCr & "急いで帰りましょう!₍₍ ◝(•̀ㅂ•́)◟ ⁾⁾",vbCritical,"時刻"

2 タスクスケジューラでmsgboxtext.vbsを自動実行

*1:定時にプログラムを実行してくれるアプリ。デフォルトで入ってる。