Android、Java、Web系、Linux、マラソン等の備忘録

2014/03/30

パソコンつけたらEvernoteに本日のやることリストを書き込めるように

0 件のコメント

やりたいこと

  1. パソコンをつけるとEvernoteが起動
  2. 本日のやることリストノート(下図のようなの)が新規投稿される
  3. (僕が)それに従ってTODOなどを書き込む
やることリストのノート

使うもの

  • Windows 7
  • Evernote Windowsクライアント 5.2
  • コマンドプロンプト
  • Windowsのタスクスケジューラ

Windowsクライアントへ自動でノートを追加する

他のEvernote連携アプリを使わずに、EvernoteのWindowsクライアントへ投稿するには、コマンドプロンプトでEvernoteのコマンドを叩けば実行できます。コマンドは下記リンク参照。

Windows - Evernote Developers
http://dev.evernote.com/intl/jp/doc/articles/enscript.php
コマンドはEvernote Windowsクライアントが保存されているディレクトリで。
例えば、単にまっさらなノートを追加するには、Evernote.exe /NewNoteというコマンドで追加ができます。

が、上図のように予め何について記述するか分かりやすく水平線や行頭文字なども入れておきたいです。ENScript.exeではノートをインポートすることができるので、以下のようにやります。
  1. Evernoteに上図のような雛形を作成する
  2. Evernote Windowsクライアントのメニュー > エクスポート > 「ENEX形式のファイル(.enex)でエクスポート」を選択してエクスポートボタンを押す
  3. 以下のようなコマンドを実行する
"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe" importNotes /s "D:\template.enex" /n "作業記録"

D:\template.enexは上記2でエクスポートしたファイルです。"作業記録"というのは、ノートブックのことで、ここの文字列でノートブックを指定することができます。

※そのままだと、エクスポートしたノートの作成日時が入るので、template.enexを開いて、<created>~</created>と<updated>~</updated>の中身を空にしておいた方が良いでしょう。

タスクスケジューラと組み合わせる

先ほどのコマンドを、テキストエディタで保存して、そのファイルの拡張子を.bat(ここではD:\yarukoto.batとして保存)にしておきます。
スタート > コントロールパネル > 管理ツール > タスクスケジューラを起動します。
タスクスケジューラのメニュー > 操作 > 基本タスクの作成を選択。
ウィザードに従ってタスクを作成します。

タスクの名前を入力して次へ

起動のタイミングを「コンピュータの起動時」にして次へ

※僕の場合は作業開始に起動したらだいたい作業終了までシャットダウンしないのでこのタイミングです。1日のうちに何度かシャットダウンする場合は毎日を選択して、時間を指定すると良いかもしれません

プログラムの開始が選択されていることを確認して次へ

参照ボタンを押して、先ほどの.batファイルで保存したものを選択します。
そして、次へボタンを押します

この画面で完了ボタンを押せばタスクスケジューラへ追加され、
パソコン起動時にノートが追加されます。

※コンピュータの起動時だとコマンドがうまく実行されないことがあるので、トリガーの編集で遅延時間1分以上を指定した方が良いかもしれません。この指定はウィザードの中にはなかった気がするので、作成されたスケジュールを右クリック > プロパティ > 「トリガー」タブ > 「編集」ボタンの画面で指定できます。


起動と共に追加したノートを表示する

先ほどまでの手順だと、パソコン起動時にノートが追加されるだけで、その追加されたノートに作業内容を記述するには自分でEvernoteを表示し該当のノートを選択する必要があります。上記の.batファイルに以下のコマンドを追記するとパソコン起動と共にノートが手前に表示されるので、SNSやメールなどに気を取られない間に作業計画を記述することができます。というか、一手間くらい省けますという話です。

"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe" shownotes /q "やることリスト"

ただし、厳密には追加されたノートが表示されるというわけではなくて、”やることリスト”というノートを検索して手前に表示するというものです。同じタイトルがあればいくつか一覧に表示されますが、作成日時や更新日時で降順に並び表示にしていれば、同じタイトルの一番上に表示されるはずです。※特に確認してません。僕の環境ではそうなってます

ノートのタイトルに日付を入れる

上記のやり方だと固定したファイルを追加し続けるだけですが、タイトルに日付を入れていつの”やることリスト”なのかを見やすくしたいと思います。どうやるかと言いますと、ENEXファイルをタイトルの所で分けて、日付を挟みながらコマンドプロンプトで雛形ファイルを作成します。そしてEvernoteへ追加します。上記のtemplate.enexファイルをテキストエディタで開いて、タイトルタグのところから2ファイルに分割します。
  • "<title>"以前 ⇒ t1.enex
  • "やることリスト</title>"以降 ⇒ t2.enex
yarukoto.batを以下のように書き換える


type t1.enex > t3.enex
set /p x=%date%< nul >> t3.enex
type t2.enex >> t3.enex
"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe" importNotes /s "D:\t3.enex" /n "作業記録"
"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe" shownotes /q "%date%やることリスト"

追記:2014/04/03
フルパスでt1.enexなどを指定するよう修正しました。

type D:\t1.enex > D:\t3.enex
set /p x=%date%< nul >> D:\t3.enex
type D:\t2.enex >> D:\t3.enex
"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe" importNotes /s "D:\t3.enex" /n "作業記録"
"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe" shownotes /q "%date%やることリスト"


このコマンドがやっていることは、

  1. 前半部分t1.enexをt3.enexへ書き込み
  2. 日付をt3.enexへ追記
  3. 後半部分t2.enexをt3.enexへ追記
  4. Evernoteへt3.enexをインポート作成
  5. 追加されたノートを手前へ表示

注意するポイントは、1では追記ではなくて書き込みで、t3.enexファイルをt1.enexファイルで上書いてる点です。あと、5でも日付指定しているので、1日1起動であれば1ノートだけ表示されることとなります。

最後に

ノートのタイトルへ日付を入れるのは、特に大きなメリットはないと思いますが、応用すればコマンドだけで動的なファイルが作れるということで参考になればと思います。

また、ノートを手前に表示させるコマンドでは、任意のキーワードを指定してタスクスケジューラと連携させればちょっとしたリマインダー機能っぽくできますね。ただ、設定が面倒ですが...

あと、今回のをタスクスケジューラで週明けや月末などを指定すれば、週報や月報などに応用できるのではないでしょうか。

0 件のコメント :

コメントを投稿