Windows の at コマンドをラップしてリマインダー作ろうとしたけど諦めた
結論
リマインダーとしては使い物にならない。
- Q: Why?
まずウィンドウが表示されないのが致命的すぎる。リマインドできないじゃん。でなくとも実施判定が信用できないし、動作確認もしずらくて、うーん。。。
作業ログ
$ at 9:07 /every:24 "notepad.exe"
2017/10/24 09:07:34 にこれを叩いても即座に notepad.exe が実行されないんだが。
$ at 9:08 "notepad.exe"
2017/10/24 09:07:45 にこれを叩いても、09:08:18 になっても実行されないんだが。以下のように、at コマンドの一覧にも残ったままだし……
$ at 状態 ID 日付 時刻 コマンド ライン ------------------------------------------------------------------------------- 1 毎 24 9:07 notepad.exe 2 今日 9:08 notepad.exe
Task Scheduler が起動してない?services.msc で見てみた。してるしてる。
……あ、コマンドラインとして「関連付けられたファイル」のみ対応ってこと?
$ at 9:12 "D:\work\gist\stakiran\gistfile1.md"
09:12:42 になってるのに起動しない。。。mdファイルに関連付けられてるエディタが起動するはずなのだが。
でも at コマンドの一覧からは消えている(起動したってこと)みたいだが。意味わからん。
$ at 9:12 /interactive "D:\work\gist\stakiran\gistfile1.md"
interactive もダメ。画面に出ないじゃねえか。
……プロセスを見てみる。ProcessExplorerで。そしたら notepad.exe が何個も立ち上がってやがる。なるほど、atコマンドはバックグラウンドで立ち上げやがるのか。かつ、立ち上げたプログラムが閉じられるまで at コマンド上でも表示され続ける と。んー。。。
ちなみにタスクのクリアはこう。
指定IDだけ消す。
$ at 1 /delete
全部消す(/yes
は確認プロンプト無しで一気に実行)。
$ at /delete /yes