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
コメント