概要
スケジューラーもカレンダーもない(インストールさせてもらえない)PCで会議の時間を知らせてほしいと感じる瞬間はありませんか、私はありました。
正直slackのリマインダーだと情報多すぎて気づかないししょっちゅう会議の時間も変わるので、時間がテキスト入力できて、ダイアログ表示したり音を鳴らしたりしてほしいわけです。
Windows標準のアラーム&クロックを手で動かすのすら嫌な日のためのリマインダーバッチです。
更新
2023/11/23 引数からの実行もできるようにした。
コード
下記のコードをテキストファイルに貼り付けて拡張子を「.bat」にします。
エンコードはshift-jisのほうが良いです。
クリックしてアラートをかける時間を半角数字で入力します。
時間になるとアラートダイアログと、対応していればビープ音がなるはずです。
一応、秒数も考慮しています。
@echo off IF "%~1"=="" ( echo タイマーを鳴らす時分を入力 set /p hh="何時(0-23):" set /p mm="何分(0-59):" ) ELSE ( REM コマンドから実行 set /a hh=%1 set /a mm=%2 ) REM 時分秒までの差分を取得 SET /a nHOUR=%time:~0,2% SET /a nMIN=%time:~3,2% SET /a nSEC=%time:~6,2% SET /a HOUR=%hh%-%nHOUR% SET /a MIN=%mm%-%nMIN% SET /a SEC=%nSEC% echo "%hh%時%mm%分にアラートを鳴らします。" REM タイマーを秒数にする set /a "ss=(%HOUR%*60*60)+(%MIN%*60)-%SEC%" REM タイマーを掛ける timeout %ss% REM 現在の時分秒を取得 SET HOUR2=%time:~0,2% SET MIN2=%time:~3,2% SET SEC2=%time:~6,2% REM 終了時にビープ音を鳴らす rundll32 user32.dll,MessageBeep REM 終了時にアラートを出す echo MsgBox "%HOUR2%時%MIN2%分%SEC2%秒になりました。",vbInformation,"情報" > %TEMP%\msgbox.vbs & %TEMP%\msgbox.vbs del /Q %TEMP%\msgbox.vbs
動作確認
ダイアログで出てくる時刻はダイアログを表示した瞬間の時刻になっています。
スクショにはありませんが、多重起動もできます。
※中身をわかりやすくするため、バッチの中身をテキストエディタで開いています。
コマンドラインからの実行もできます。
下記は10時56分にアラートを出す例です。
頭にstartとつけると別ウィンドウで開いてくれます。
start alert.bat 10 56
おわり。