Windowsでもコマンドラインから文字化けせずにEvernoteにノート追加する方法がわかった
タイトルの通りです。
まだモヤモヤしたままではありますが。
答えは簡単で、ENScriptを使わない、です。
どういうこと
何を使ってノート追加するかというと、Evernote for Windows本体をコマンドラインから使うのが正しいと思われます。
というのも、APIのページにWindows版はコマンドラインオプションが記載されています。
ここで、日本語をコマンドラインからノート追加しようと思ったら、コマンドプロンプトからやればオーケーです。
まずはパスだけ通しておきます。
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 基本&活用ワザ 完全ガイド
- 作者: コグレマサト,いしたにまさき,堀正岳,できるシリーズ編集部
- 出版社/メーカー: インプレス
- 発売日: 2014/04/25
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
- 作者: 根岸智幸
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る