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