/commainder

バッチファイル謹製リマインダー。`r 3 カップラーメン` で 3 分後に「カップラーメン」と表示。

Primary LanguageBatchfileMIT LicenseMIT

Commainder

バッチファイル謹製リマインダー。r 3 カップラーメン で 3 分後に「カップラーメン」と表示。

デモ

たとえばファイル名を指定して実行から、以下のようにして指定します。

commainder_from_run

動作中は DOS 窓が動きますので、適当に最小化でもしておいてください。

commainder_dos_window

時間になると、以下のように 最大化表示したメモ帳 でリマインドされます。

commainder_reminding

たとえリマインドに気付かなかった(メモ帳ウィンドウが開いたことに気付けなかった)としても心配ありません。リリマインド機能を搭載しており、すぐに再リマインドされます。

commainder_reremaind

動作環境

  • Windows 7 以降

入手

Git を使う方は git clone などで適当に。

ブラウザからダウンロードする方は Download ZIP より zip ファイルをダウンロードし、適当なディレクトリに展開してください。ただし 展開した r.bat の改行コードが CRLF であることを確認してください。LF だと動作しません。LF の場合は CRLF に手動で変換してください(テキストエディタで開いて CRLF で保存し直す、など)。

使い方

  • (1) r.bat を実行する
    • データフォルダが %userprofile%\.commainder 配下に生成されます
  • (2) r.bat をパスの通ったフォルダに配置してください
    • てっとり早くやりたいなら open_windows_folder_passed_to_PATH.bat を実行し、開かれた Windows フォルダに配置します

すると「ファイル名を指定して実行」や「コマンドプロンプト」から r.bat を呼び出せるようになります。

呼び出し例:

  • 3分後に「カップラーメン」と表示
    • r 3 カップラーメン
  • 3分後にリマインド(メッセージ内容を省略する)
    • r 3

一般的なフォーマット:

  • r (分) (リマインド内容)
  • 分を省略すると 0 とみなされ、即座にリマインドされます。
  • リマインド内容は省略できます。

リリマインドについて

リリマインドとは、一度リマインドした内容を再びリマインドすることです。リマインドに気付かなかった場合に、再度気付かせるための用心と言えます。

Commainder のリリマインドとしては、最初のリマインドで開かれた「メモ帳」が存在する限り、インターバル間隔ごとに再度そのメモ帳を開く、という処理を行います。リリマインドを止めたい場合は、リマインドにて開かれたメモ帳ウィンドウをすべて閉じるか、あるいは Commainder 本体のコマンドプロンプトウィンドウを閉じてください。

技術的な話

Commainder の実装や疑問や不満など、技術的なことを Q&A 形式でまとめておきます。技術的に興味がある方向けです。ただ使うだけなら読む必要はありません。

Q: なぜバッチファイル謹製?

Ans: ただの好奇心です。

バッチファイルだけでリマインダーを作る、というチャレンジが面白そうだなぁと。

Q: なぜ「メモ帳を最大化して表示」という方法を選んだ?

Ans: なるべく確実にリマインド内容に気付かせるためです。

リマインドするためには「指定したメッセージを何らかの手段で表示」させることが必要ですが、Windows 標準機能だけでは、これを行える仕組みがありません。

  • msg コマンドは?
    • ダイアログボックスが小さく、気づきにくいので却下しました
  • Powershell や VBScript は?
    • 動作が重たいし、バッチファイルから外れるので却下しました

上手い表示方法が浮かばず、苦戦していたのですが、ふと「そうだ、リマインド内容をテキストに書いといて、それをメモ帳で開けば、気付きやすいんじゃないか」とひらめき、実装してみたところ、良い感じでしたので採用しました。

Q: パスを通すために Windows フォルダに置かせるのはひどくないか?

Ans: 他に良い方法がありません。

詳しい方なら、既にパスを通したフォルダがあるでしょうから、勝手にそこへ置けば良いと思います。

そうでない場合、パスを通したフォルダを準備させるのは手間なので、「元から通っているフォルダに入れればいい」という指示にしました。Windows フォルダという、システムフォルダに入れるのは行儀がよろしくありませんが、元から通っているフォルダが他にないので、仕方ありません。

Q: コマンドプロンプトから r を実行すると、タイトルが書き換えられてしまうが、戻してくれないの?

Ans: 戻せません。ご了承ください。

タイトルを戻すためには、「コマンドプロンプトに現在表示されている内容を取得する手段」が必要になりますが、これが存在しません。もし存在するのなら、ぜひ教えてほしいです。r.bat に実装します。

Q: データフォルダにリマインド内容が保存されるのが気持ち悪い。削除してくれないの?

Ans: 削除はしません。

削除というデリケートな操作を勝手に行う方が気持ち悪いと思うので、Commainder としては対応しません。

ライセンス

MIT License

作者

stakiran