ふんわりした生活

本を読んだり仕事でやってみたことなどの日常から、ふんわりと気づきなどを書いていきます

Windowsでもコマンドラインから文字化けせずにEvernoteにノート追加する方法がわかった

タイトルの通りです。

まだモヤモヤしたままではありますが。

答えは簡単で、ENScriptを使わない、です。

どういうこと

何を使ってノート追加するかというと、Evernote for Windows本体をコマンドラインから使うのが正しいと思われます。

というのも、APIのページにWindows版はコマンドラインオプションが記載されています。

Windows - Evernote Developers

ここで、日本語をコマンドラインからノート追加しようと思ったら、コマンドプロンプトからやればオーケーです。

まずはパスだけ通しておきます。

set PATH=%PATH%;%ProgramFiles(x86)%¥Evernote¥Evernote

32bit版の方は以下で。

set PATH=%PATH%;%ProgramFiles%¥Evernote¥Evernote

そうしたら、あとはechoコマンドで日本語を書いてやります。 Evernoteへの日本語引き渡しは、クリップボード経由でやります

ここ、大事です。

しかも、クリップボード経由でかつ文字コードがShift-JISの文字列でなければダメです。

コマンドラインからクリップボードを経由させるのは「clip」コマンドを使います。 私の記憶ではWindows7以降には少なくとも標準で入っているコマンドです。 これは引数で与えられた、あるいは標準入力やパイプを経由してクリップボードにテキストを送るコマンドです。

echo "あいうえお" | clip

これでクリップボードに「あいうえお」がコピーされました。

Evernoteへはコマンドラインから次のようにすればクライアントにノートが追加されるのが見て取れるとおもいます。

evernote /Task:PasteClipboard

注意点

さきほどのEvernote本体をコマンドラインから実行する方法ですが、2つ注意すべき点があります。

1つ目はコマンドのオプション「/Task:PasteClipboard」です。 普通、Windowsは大文字小文字を区別しないので、大抵のコマンドでは「/task:pasteclipboard」としても大丈夫なはずです。 しかしEvernoteは大文字小文字を区別しているようです

よって、きちんと「/Task:PasteClipBoard」としましょう。

2つ目は文字コードです。 UTF-8で書かれたファイルの中身を取り出してクリップボードにコピーしようなどと思ってはいけません。 そういうときは、素直にファイルのフルパスを渡すだけにしましょう。

拡張子が「.txt」や「.html」などではそのままファイルの中身をノートにしてくれるので、文字コードがShift-JISではないものを頑張って文字コード変換しようとしなくて大丈夫です。

また、これら以外の拡張子では添付ファイルとして扱ってくれます。

evernote C:¥Users¥hoge¥Documents¥sample.txt

ですから、間違ってもPowerShellなどで次のようにしないようにしましょう。

cat -Encoding utf8 sample.txt | clip
evernote /Task:PasteClipboard

完璧に文字化けします。

最後に

何がまだモヤモヤしているかというと、上記の方法だと最初にどのノートブックに追加するかなどは選択の余地がないということです。 あとからクライアントで操作することになるので、手軽さで言えば今回の方法が一番ではありますが…という感じです。

Macのほうが柔軟な気がしなくはありませんが、これ以上を求め始めるとAPI使おうよということになるのでケースに応じて使い分けるとかしたほうが良さそうですね。

できるポケット Evernote 基本&活用ワザ 完全ガイド

できるポケット Evernote 基本&活用ワザ 完全ガイド

ほんの1秒もムダなく片づく 情報整理術の教科書

ほんの1秒もムダなく片づく 情報整理術の教科書