バッチファイルでポモドーロ・テクニックを使いたい

bat/cmd

概要

ポモドーロ・テクニックの本を読みました。

なんだか集中できて便利らしい、さっそく使おう! と思ったけどタイマーがなかった。
あるいは職場のWindowsに勝手にソフトを入れられないけど、ポモドーロ・テクニックを使いたいぞ! という瞬間がありますよね。

Windowsにもとから入ってるバッチファイルを使ってポモドーロできないかな・・・と思った結果がこちらの記事になります。

Windows7以降ならバッチでtimeout関数が使えるそうなのでそれを使ってカウントダウンします。
timeout関数は引数の秒数だけ待機してくれる関数です。

これだけだと終了したかどうかがわからないので、アラートを表示させます。
アラートはメッセージボックス表示させるvbsを作って実行、削除という方法で実現しています。

作り方

作成方法は、メモ帳などのテキストエディタで下記のコードを書いて、拡張子を.batにします。

「新しいテキスト ドキュメント.txt」を「5min.bat」とか「25min.bat」とかいうファイル名にする感じです。
「.txt」「.bat」の部分が拡張子になります、環境によっては表示されないので、拡張子を表示してから変更しましょう。

あとは.batファイルをクリックするだけで秒数をカウントダウンしてくれるタイマーがかけられて便利です。
集中できないときとかにどうぞ。

コード

25分のポモドーロ

@echo off
set /a min=60*25
timeout %min%

set /a min=%min%/60
echo MsgBox "%min%分が経ちました。",vbInformation,"情報" > %TEMP%\msgbox.vbs & %TEMP%\msgbox.vbs 
del /Q %TEMP%\msgbox.vbs

5分のポモドーロ(休憩用)

@echo off
set /a min=60*5
timeout %min%

set /a min=%min%/60
echo MsgBox "%min%分が経ちました。",vbInformation,"情報" > %TEMP%\msgbox.vbs & %TEMP%\msgbox.vbs 
del /Q %TEMP%\msgbox.vbs

実行するとタイマーをかける時間(分)を入力できるタイプのポモドーロ

@echo off
set /p min="タイマーにセットしたい分数を入力してください:"
set /a min=%min%*60
timeout %min%

set /a min=%min%/60
echo MsgBox "%min%分が経ちました。",vbInformation,"情報" > %TEMP%\msgbox.vbs & %TEMP%\msgbox.vbs 
del /Q %TEMP%\msgbox.vbs

実行のようす(分数を指定するバージョン)

起動時

待機したい分数を入力してEnterを押すとカウントダウンが始まります。
(カウントダウン中になにかのキーを押すとアラートまで進んでしまうので、カウント中はウィンドウを最小化しておきましょう)

入力分数経過すると、vbsで作ったアラートが実行されます。

文字化けする場合

文字化けする場合は.batファイルの文字コードがshift-jisになっているか確認してみてください。
逆にコマンドプロンプトの文字コードがshift-jsでない場合も文字化けしたりします。

おわり。