Evernote for Windows付属のENScript.exeを使う

EvernoteのAPIとか調べていたら、Windows版にはコマンドライン版のフロントエンドが添付されていることを知った。
どれどれとヘルプをざっと見た感じ、ちょっとは使えそうなものがあった。

個人的に大発見だと思ったのは、コマンドラインから検索クエリを実行できる ENScript showNotes というコマンド。

これはEvernoteの検索ボックスの代用として使えるコマンドなのだけど、ランチャーにこのコマンドを登録しておけば”保存された検索”の代用としても使えるよなぁと思い、実際に CLaunch というランチャーソフトに登録してみたという図がこれ。ランチャに登録したことで並び替えも自由にできるようになって、かなりいい感じ。

その他まとめ。

  • 標準入力や標準出力が使えるのは便利。
  • Evernote重いよ!という場合。 ENScript createNote と ENScript syncDatabase を使えば、Evernote for Windowsを起動させずにノートの作成、同期ができる。
  • 保存された検索に一気に飛びたいよ!という場合。ENScript showNotes /q “your_query” をランチャーソフトに登録してしまえ。
  • 重複されたノー トを一気に消したいよ!という場合。exportNotes と createNotebook と importNotes とPerl/Pythonなどのスクリプト言語の組み合わせで何とかなるかも。

全てのコマンド一覧もちょっとした解説つきで載せておきます。個人用メモなので内容は保証しません。

Usage: ENScript createNote [options]

Option:

/s file        file containing the plain text note contents. If omitted, note contents are read from standard input.
/n notebook    notebook to create the note in. If does not exist, lazy create. If omitted, use default notebook.
/i title    specifies note title. If omitted, note title will be generated automatically.
/t tag        specifies note tag. If tag does not exist, lazy create it. Use multiple /t options to specify multiple tags.
/a filename    specifies file attachment. Use multiple /a options to specify multiple file attachments.
/c dttm        note creation date/time. { “YYYY/MM/DD hh:mm:ss” | filetime }. If omitted, use current time.
/u username    user name if not the same as database file name.
/p password    user password to confirm Evernote service access.
/d database    database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

/sで指定した既存のファイルから新規ノートを作成する。
/sを省略した場合は、標準入力から新規ノートを作成する。パイプ処理も可能。
作成先のノートブックの指定、タイトル、タグ、作成日付、添付ファイル(プレミアム会員のみ)などを同時に指定できる。
存在しないタグは自動的に作成する。複数のタグを一度につけるには/tを繰り返す。
例えばtag1, tag2, tag3という3つのタグをつけるには、/t tag1 /t tag2 /t tag3 … と指定する。

サンプル:

$ dir /b | ENScript createNote /t file_list /t mypc

注意:

作成しただけでは同期されていないので、後述のENScript syncDatabaseコマンドを用いるか、Evernote for Windowsから同期ボタンを押す必要がある。
/c dttmで日付指定をすると、9時間先の時間(標準時間)になってしまう(バグ?)。
/c を省略した場合は、ローカル時間が正常に反映される。

TIPS:

メールでノートを作成する場合と異なり、存在しないタグは新規に作成する。これを利用すると大量のタグを一気に作成できる。日付別のタグ とか。
た だし、子タグを作ることはできない感じ。

Usage: ENScript importNotes [options]

Option:

/s {file|url}    source .enex file or url. If omitted, stdin is used to gather source specification.
/n notebook    notebook to create the note in. If does not exist, lazy create.
If omitted, use default notebook.
/u username    user name if not the same as database file name.
/p password    user password to confirm Evernote service access.
/d database    database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

上級者向け。
.enexという形式のファイルをインポートする。.enexとはEvernoteのデータベースをXMLとして出力したものである。
.enexの形式については後述のエクスポート機能で.enexファイルを出力させてテキストエディタで見てみれば分かる。

Usage: ENScript showNotes [options]

Option:

/q query – query to filter the notes. If omitted, stdin is used to gather query specification.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

/qで指定したクエリに該当するノート群をEvernote for Windows上で表示する。
/qを省略した場合、標準入力からクエリの入力を待つ。

Evernote for Windowsの検索ボックスからクエリを入力した場合と同じ動作を行う。
Evernote for Windowsが起動していない場合は、Evernote for Windowsを自動で起動させたうえ、前述の動作を行う。
/q でクエリを指定するとき、クエリにスペースを含む場合はクエリ全体を “” で囲む。

サンプル:

タグに”evernote”を含む、1週間以内に作成されたノートをEvernoteで表示

$ ENScript showNotes /q “tag:evernote created:day-7”

TIPS:

Evernote for Windowsの”保存された検索”が使いづらいよという人は、このコマンドを適当なランチャソフトに登録すると幸せになれるかも。

Usage: ENScript printNotes [options]

Option:

/q query – query to filter the notes. If omitted, stdin is used to gather query specification.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

おそらくshowNotesコマンドの旧バージョン(未確認)。Evernote for Windows 3.5.4.2343では正常に動作していないように思う
筆者の環境ではEvernote for Windowsのウィンドウがアクティブに変わるだけで、動作していないように見える。

Usage: ENScript exportNotes [options]

Option:

/q query – query to filter the notes. If omitted, stdin is used to gather query specification.
/f file – export .enex file. If omitted, stdout is used.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

上級者向け。
/qで指定したクエリに該当するノート群を.enex形式で標準出力またはファイルに出力する。
/qを省略した場合、標準入力からクエリの入力を待つ。

Usage: ENScript createNotebook [options]

Options:

/n notebook – name of the notebook to create. If omitted, the notebook name isread from standard input.
/t {local|synced} – type of the notebook to create. If omitted, creates a synchronized notebook.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

ローカルまたは同期用のノートブックを作成する。通常はEvernote for Windows上から作成すれば良いと思う。

Usage: ENScript listNotebooks [options]

Options:

/t {local|synced} – type of the notebooks to list on stdout. If omitted, listall existing notebooks.
/u username – user name if not the same as database file name.
/p password – user password to confirm Evernote service access.
/d database – database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

ノートブックの一覧を標準出力に出力する。

サンプル:

ローカルノートブックの一覧を新規ノートに追加する。

$ ENScript listNotebooks /t local | ENScript createNote

Usage: ENScript syncDatabase [options]

Options:

/l file name    log file name. Use standard log if omitted. Ignored in GUI implementation.
/u username    user name if not the same as database file name.
/p password    user password to confirm Evernote service access.
/d database    database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

解説:

同期を行う。Evernote for Windows上で同期ボタンを押した時と同じ挙動をする。
Evernote for Windowsが起動していなくても処理が行われる。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>