Evernote にテンプレート機能ができたけど、日付などの変動値が入らないのでスクリプトを作成
Evernote にテンプレート機能ができたけど、これって単なるノートのコピーであって、日付とか変動するものを入れられないんですね(いまのところ)
ということで、下記を自動化する vbスクリプトを作成してみた
エクスポートしておいたノートを読み込む→文字列を置換→別名で保存(temp)→enscriptでノートを追加
使うまでの準備
作成日: <created>~ </created>
更新日: <updated>~</updated>
ということで、下記を自動化する vbスクリプトを作成してみた
エクスポートしておいたノートを読み込む→文字列を置換→別名で保存(temp)→enscriptでノートを追加
使うまでの準備
- 下記のスクリプトをどこかへ保存(ここでは EnImportTemplate.vbs として説明)
- テンプレートとなるノートを作成し、enex形式でエクスポート
- エクスポートした enexファイルをテキストエディタで開き、置換したい文字列を入力、保存
※置換文字列は、スクリプトの最後の方に各自定義する - vbs を実行 ←次回からココだけ
例>EnImportTemplate.vbs enexファイル 追加先ノートブック名(オプション)
作成日: <
更新日: <updated>~</updated>
Option Explicit if Wscript.Arguments.Count > 0 then dim xmlData, enNoteBookNameOpt dim objStream ' 作成先ノートブック(第2引数) if Wscript.Arguments.Count >= 2 then enNoteBookNameOpt = " /n" & Wscript.Arguments(1) end if ' 入出力ファイル名 dim srcFilename, dstFilename srcFilename = Wscript.Arguments(0) dstFilename = createTempFilename() ' 元endxデータ読み込み set objStream = CreateObject("ADODB.Stream") objStream.Charset = "UTF-8" objStream.Open objStream.LoadFromFile srcFilename xmlData = objStream.ReadText(-1) objStream.Close set objStream = Nothing ' 文字列置換 xmlData = replaceStr(xmlData) ' enexデータ書き込み set objStream = CreateObject("ADODB.Stream") objStream.Charset = "UTF-8" objStream.Open objStream.WriteText xmlData objStream.SaveToFile dstFilename, 2 objStream.Close set objStream = Nothing ' enscript 実行 dim Commandline Commandline = "enscript importNotes /s " & dstFilename & enNoteBookNameOpt dim objShell set objShell = CreateObject("WScript.Shell") objShell.Run Commandline, 0, true ' 一時ファイル削除 deleteFile dstFilename end if ' ------------------------- function createTempFilename() Dim objFSO Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") createTempFilename = objFSO.GetSpecialFolder(2) & "\" & objFSO.GetTempName() Set objFSO = Nothing end function sub deleteFile(filename) Dim objFSO Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile filename, True Set objFSO = Nothing end sub ' 置換 function replaceStr(xmlData) ' 置換したい文字をココに記載 xmlData = Replace(xmlData, "%DATETIME%", FormatDateTime(Now, 1)) xmlData = Replace(xmlData, "%YEAR%", Year(Now)) xmlData = Replace(xmlData, "%MONTH%", Month(Now)) xmlData = Replace(xmlData, "%MONTH0%", Right("0" & Month(Now), 2)) ' ゼロ埋め xmlData = Replace(xmlData, "%DAY%", Day(Now)) xmlData = Replace(xmlData, "%DAY0%", Right("0" & Day(Now), 2)) ' ゼロ埋め xmlData = Replace(xmlData, "%HOUR%", Hour(Now)) xmlData = Replace(xmlData, "%HOUR0%", Right("0" & Hour(Now), 2)) ' ゼロ埋め xmlData = Replace(xmlData, "%MINUTE%", Minute(Now)) xmlData = Replace(xmlData, "%MINUTE0%", Right("0" & Minute(Now), 2)) ' ゼロ埋め replaceStr = xmlData end function
コメント