(ノートタイトル)」とbluewindに打ち込むと、順にコマンドが実行され、最後にノートリンクが秀丸に表示されるはず。4.最後にもし間違っているところや、読んでいて意味がわからないところがあればtwitter等で教えて下さい。直したり、私のわかる範囲で説明させていただきたいと思っています。Trackback:0このページのトップへ[Evernote]Bluewindから新規ノート作成、直後にノートリンク取得するスクリプトを自作しました(その2)前回の記事で、動機や全体の流れを説明したので、この記事で具体的な処理を紹介していきたいと思います。(ノートタイトル)というコマンドで、ノートタイトルとノートの内容となるファイルを指定してノートを作ることができます。好みの分かれるところかもしれませんが、私はノートの1行目とノートタイトルを合わせた方がすっきりするので、下記のようなbatファイルを作りました。%1exitこのbatファイル実行時に、ノートタイトルを引数として渡すと、Evernoteに指定したノートタイトルのノートが出来上がります。2.ENScript.exeを使って同期(この際、同期ログをテキストファイルに出力させる)ここでもENscript.exeを使います。C:\tmp\syncDatabase.logこれを実行すると、同期が行われて、そのlogがsyncDatabase.logに残ります。ここからノート情報を切り出します。3.同期ログから、秀丸を用いてノートタイトルでgrep検索その同期ログの中に、下記のようにノートタイトルとノート情報が続いて出現する部分があります。ノートタイトルが出てくる行を探し、末尾の改行を削除、その後にノートタイトルを含む行だけをgrep検索で拾ってくる、ということをしています。4.ノート情報部分を切り貼りしてノートリンクに仕上げるノート情報が得られたら、あとは前後の要らない部分を削り、アカウント情報をくっつけたり、ノート情報を繰り返したりすればノートリンクの完成です。実際には3.と4.は秀丸マクロにやらせています。現状は、秀丸マクロに外部から文字列をスマートに渡す方法がわからず、クリップボードを介して処理しています。ファイルから持ってくる、または引数として渡す、ということができればクリップボードの上書きが避けられると思うのですが、秀丸マクロのヘルプを見てもすぐにはわかりませんでした。クリップボードに読み込む方法としては、bluewindのgetTextという単機能を使っています(次回の記事でbluewind周りを説明するので、そこで具体的な内容を書きます。)同じ事をbatファイルを利用して実現することも可能だと思います。そんな感じですので、このマクロはとりあえず動くのですが自分でもよくわかっていない処理もあったりします。切り貼りと試行錯誤だらけで、きれいなものではありませんが載せてしまいます。「ノートリンク化」の最後の方に出てくる「(アカウント情報)」については、自分のノートリンクを確認して、自分のアカウント情報に置き換えて下さい。#hwnd;endmacro;6.既知の制限事項(1)秀丸マクロにキーワードを取り込む際に、クリップボードを経由しています。そのため、クリップボードが上書きされてしまいます。(2)ノートタイトルに記号が入ると、途中で文字列が切れたり、最後まで動かなかったりすることがあります。直したらいいよ、というアドバイスがあれば教えて下さい。ここで記事を終えて、上記1~5をbluewindで繋げる部分を次回の記事に書きたいと思います。Trackback:0このページのトップへ[Evernote]Bluewindから新規ノート作成、直後にノートリンク取得するスクリプトを自作しました(その1)1.このスクリプトで何ができるのか?コマンドの引数にノートタイトルを指定してEvernoteに新規ノートを追加し、そのまま自動処理でノートリンクを取得する、というスクリプトみたいなものを作り上げてみました。インプットとアウトプットがこういう感じになります。インプットアウトプット「bluewind」(フリー)というコマンドラインランチャーソフト、その関連ソフトとして「getText」(フリー)、文字列の置換にテキストエディタ「秀丸」(シェアウェア)のマクロ機能を使っています。下記のはまラボへの寄稿記事にあるように、タスク管理ツールのタスクとEvernoteを紐付けて使っています。使用例こういうことをやっていると、タスクに関連する内容を入れていくための空のノートを作成し、すぐにノートリンクを取得してタスクにリンクさせておきたい、という要望が生まれます。直感的に手作業でこれを行うと、Windowsクライアント等で新規ノート追加、同期、(同期完了を待って)ノートリンク取得、という手順となるでしょう。非力なマシンだと、同期に時間もかかるし、いつ終わるかもわからず、ストレスの元になります。これをどうにかしてもっとスムーズな作業にしたかった。3.スクリプト自作のきっかけ数ヶ月前のことになりますが、とゆさん(@toyu3)と一緒にtwitter上でマロ。さん(@maro_draft)主催のワークをさせてもらった際、EvernoteのENScript.exeの使い方周りでたくさんのヒントをもらい、「一丁自前で作ってみるか」と思って挑戦を始め、この度ようやく出来上がったものです。さんのワークが無ければ、私単独ではまず実現できなかったことだと思います。toggl_to_TaskChuteにも毎日お世話になっていますし、マロ。さんには足を向けて寝られません。ありがとうございます。4.ノートリンクの構造ノートリンクの構造については、こちらの記事が大変分かり易いと思います。Tumblr.comこの記事からわかるように、ノートリンクは「アカウント情報+ノート情報」という構成になっています。アカウント情報は自分一人が使う場合には固定値ですので、個別のノートのノートリンクを取得するにはノート情報の部分だけ判れば良いということになります。個別のノートのリンクは、新規ノート作成直後にEvernoteの同期をすると、その同期のログの中に出てきます。それを秀丸のgrep検索を使って拾ってきて、アカウント情報と繋げてノートリンクを取得することができます。5.全体の流れやっていることはコマンドラインプロンプトからでも実行できる内容だと思いますが、実行時に便利なのでbluewindというコマンドラインランチャーソフトを使っています。(1)ENScript.exeを使って、ノートタイトルを指定して新規ノートを作成(2)ENScript.exeを使って同期(この際、同期ログをテキストファイルに出力させる)(3)同期ログから、秀丸を用いてノートタイトルでgrep検索(4)ノート情報部分を切り貼りしてノートリンクに仕上げる今後の記事で、もっと具体的な処理を紹介するつもりです。素人ですので泥臭い処理が多々あるかと思いますが、ご了承下さい。Trackback:0このページのトップへ[Evernote]添付ファイルの脱落、反映漏れへの対応つい先ほど、添付ファイルの復旧をしたところなので、忘備録を兼ねて記事にしてみます。1.添付ファイル機能の概要Evernoteの添付ファイル編集時の動作は、いったんローカルに保存したファイルをOSの機能で開き、編集作業終了をEvernote側で検知してファイルを更新する、という形になっています。下記の記事に詳しいです。私はExcelでよくトラブルになるのですが、変更したはずの内容が反映されていない、Excelファイルが脱落する(今朝初めて遭遇)、というトラブルの経験があります。発生するわけでは無く、そもそもExcel特有の問題なのか、他のアプリでも起こり得ることなのかは不明です。補足:アプリケーションの関連付けについてなお、ファイルを右クリックから「アプリケーションを指定して開く」で開くと編集結果が保存されません(もしかしたらEvernoteクライアント側で対応済みかもしれませんが、少なくとも以前はそういう動作でした)。デフォルトのアプリケーション以外で編集したい場合は、アプリケーションの関連付けを変更してやる必要があります。上記記事にも出てきた「Attachments」フォルダからファイルをコピーしてきてやると、編集後の添付ファイルが回収できることがあります。「Attachments」フォルダの探し方は、オプションから「データベースフォルダを開く」から辿ると早いと思います。「Attachments」フォルダデータベースフォルダ内にあります。今朝見たところでは、ほぼ全ての添付ファイルに「.backup」という拡張子が付加されていました(以前は素のファイルが置いてあった記憶があります)。更新日時でソートして目的のファイルを探し出し、拡張子を直してみると、お目当ての編集後のファイルを取り戻すことができたのでした。4.残念ながらうまくいかない時もあった今朝のケースは運良くファイルの復旧に成功したのですが、以前経験したケースでは最後の編集結果が残っておらず、途中の変更までしか取り戻せなかったこともありました。複数回の編集をした際などに、ファイル名の重複を避けるための処理と思われますが、ファイル名に[1]や[2]が付加されてファイルが開くことがあります。この処理の周りが怪しそうだな、と個人的には思っています。対応策としては「添付Excelファイルを保存したら、反映されたか再度開き直して確認する」というアナログな対応をしています。できるだけ早い段階で気付いた方が、傷が小さく済みます。Trackback:0このページのトップへ[Evernote]enexファイルの中身はXML。JPGのOCRは冗長構成。1.バイナリファイルでなくテキストファイル最近、とゆさん(@toyu3)と一緒にマロ。さん(@maro_draft)のプログラミング講座を受けています(贅沢な話です)。その中で、Evernoteのエクスポートファイルについて発見があったので、紹介します。それまでノートをエクスポートした際に出力される.enex拡張子のファイルはバイナリファイルなんだろうと勝手に思い込んでいたのですが、テキストエディタで開けるXMLファイルでした。2.画像でも何も全てテキストデータに変換されて収められているJPGでもExcelファイルでもPDFでも、文字列の羅列人間には意味が読み取れない英数字の羅列に変換されて収められています。ノートの任意の位置にファイルを挿入できたり、自由に使えるのですね。3.JPGのOCRテキストは複数の認識候補が併記されているEvernoteに貼り付けたJPGは、サーバ側で処理された後にOCR可能な状態になりますが、このOCRテキストもenexファイルの中に記載されていました。複数の認識候補がタグで区切って併記してあり、OCRミスがあってもある程度カバーできるようになっているようです。Evernote側では、検索時に多数の候補が挙がってきてしまうことよりも、欲しいノートが見つからないことの方が問題だと考えている、ということなんでしょうね。手間は少ない方が良い。機械にさせられることは、機械にやってもらえば良い。人間は、人間様にしかできない仕事に力を割くべき。自分の記憶力にはできるだけ頼らずにものごとを処理したい。男児1人、女児1人の父親。Twitter:@sakane0958mail:sakane@fluentlife.jp2013年11月にブログを移転しました。新ブログを立ち上げました。