スキップしてメイン コンテンツに移動

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

やりたいこと

  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ノートだけ表示されることとなります。

最後に

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

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

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

コメント

このブログの人気の投稿

Javaでprivateなfieldやmethodにアクセスする

JUnitでテストしてると、privateなフィールドにアクセスして、値を参照したりセットしたりしたくなるわけですが、よく使うのでメモしておきます。 例えば、次のような対象のクラスがあるとします。 public class ParentClass { private String hoge = "ParentClass!!"; public void dispMsg() { System.out.println("dispMsg:" + hoge); } private void privateDispMsg(String msg) { System.out.println("dispMsg:" + msg); } }

GolangでWindows GUIアプリケーション

GUIアプリ作成の前提 社内ツールとしてexeで配布 開発環境はGoLandを使う 社内ツールとしてexeを配布ということであれば、Visual StudioでC#による開発だと思います。しかしながら、Go言語を習得したいのと、GoLandの補完機能が便利で、Android Studio使っていたこともあり、とっつきやすいという点からGo縛りでGUIアプリケーションを考えたいと思います。 lxn/walk Windows application library kit for Go. Windows向けしか考えていないので、まずこのライブラリなのですが、ボタンやコンボボックスが思ったように並ばなかったり、手軽にイメージボタンを配置したりなど、簡単にレイアウトを変更できない課題に直面しました。レイアウト作成だけで時間を取られてしまいます。そう言えば、Androidアプリ開発のときは、XMLでデザイン部分を切り離してたのを思い出して、今回の調査の運びとなりました。 fyne-io/fyne Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. walkと比べると、クロスプラットフォームで作成できるのですが、こちらもコードの中にデザインを書いていく形でした。 therecipe/qt therecipe/qt allows you to write Qt applications entirely in Go or JavaScript. Qt Creatorなるものがあるようで、デザイン部分を切り離せる印象はあるものの、最新のPCでもビルドに時間がかかるようで、学習コストもかかるという記事を見かけて断念しました。 どうしたものかとツイートしましたら、下記のようにご助言をいただいた。 同じ課題に対し色々試した結果、PWAのフルキャッシュドに落ち着いた。中身はGo+WASMで。 https://t.co/e60whDTV16 — のぼのぼ📡 (@nobonobo) July 21, 2020 PWA 早速調べてみました。Googleが進めているプロジェクトで、ネイティブアプリのよ

Eclipseの高速化メモ

Eclipseが重いと一言に言っても、いろいろな工程での話があると思いますが、過去記事のなども含めてこの記事にピックアップしておきたいと思います。以下はWindows環境での話です。