ココログ(Typepad)のバックアップを複数のファイルに分けるVBScript
カテゴリ別書評一覧の新装開店の詳細その1。
【はじめに】
ココログは、記事のバックアップを取れるし、復元もできる。バックアップを取るのは簡単だが、復元の際に困る場合がある。
というのも。ココログで復元するには、「管理」ページの「読み込む」を使う。が、ココログだと、一回の操作で読みこめるファイルの大きさに、制限があるのだ。最大3M(メガバイト)まで。
記事の数が多かったり、大きな写真を使っていると、バックアップの大きさが3Mを越えてしまう。私の場合は約17Mに達した。だから、復元の際には、複数のファイルに分けて、何回か「読み込む」操作をしなきゃいけない。
分けるったって、単純にバイト数で分けるわけにはいかない。記事の切れ目で分ける必要がある。ってんで、記事の切れ目でファイルを分ける VBScript を作った。
はいいが、使い勝手はとても悪い。
というのも。
このスクリプト、元ファイルを幾つかのファイルに分けて書きだす。
のはいいが、書き出した全てのファイルに対し、手作業で文字コードを変える必要があるのだ。書き出すファイルは、BOM つきの UTF-8 だ。これを、BOM なしの UTF-8 に変える。仮に10個のファイルに別れたら、10回同じ操作を繰り返す必要がある。不細工だね。
私は K2Editor を使い、いったん開いて、保存時の文字コードを UTF-8N に変えた。
などの問題はあるが、記録として記事に残しておく。
【使い方】
- 下にあるソースを、div.vbs などのファイル名で保存する。
- ココログのバックアップを、div.vbs にドラッグ&ドロップする。
→バックアップと同じフォルダに、"a-0.txt", "a-1.txt", "a-2.txt" … などが出来る。 - 上で出来たファイルは、文字コードが BOM つきの UTF-8 である。これを、テキスト・エディタなどで、BOM なしの UTF-8 に変える。
- 文字コードを変えたファイルを、ココログで「読み込む」。
【メモ】
a.文字コード
ココログ(Typepad)のバックアップは、BOM なしの UTF-8 。読み込む際も、BOM なしの UTF-8 だ。BOM つきの UTF-8 も読ませてみたが、ハジかれた。いずれも改行文字は LF。
面倒なことに、VBScript は Unicode が苦手だ。読み書きともに特殊な API を使わにゃならん。おまけに書けるのは BOM つき UTF-8 だけ。もっとも、いったん書いてから、先頭の3バイトを削って上書きすりゃいいんだが、面倒くさいからやめた←をい。
b.ココログのファイル形式
この記事を書き始めてから調べて知ったんだが、ココログのバックアップのファイル形式は Tyopepad だった。んな事も知らずにスクリプトを書いていたとは、我ながら無謀な真似したもんだ。
c.ココログのバックアップの取り方
- 管理ページトップから、タブ「ブログ」を選ぶ。
- 「そのほかの操作」をクリックする。
→ポップアップ・メニューが出る。 - ポップアップ・メニューから、「ブログの管理」を選ぶ。
→「ブログ」タブの「管理」サブタブが出る。 - 「管理」サブタグから、「読み込み/書き出し」を選ぶ。
→「読み込み/書き出し」の頁が出る。 - 書き出し(IPv4のみ)を右クリックして、リンク先を保存する。
ブラウザが Firefox なら、「名前をつけてリンク先を保存(K)…」を選べば、
ファイル保存ダイアログが出る。 - 上で保存したファイルが、ココログのバックアップだ。
d.ココログを復元する際の注意事項
復元する前に、更新通知とRSSフィードを切っておこう。常連さんや Google にスパムを送りかねない。というか、私は切らずにやらかしたのでかなり迷惑をかけてしまった。
復元は、バックアップと同じ「読み込み/書き出し」の「読み込み」を使う。文字コードは「Unicode(UTF-8)」にする。読み込んだ後にブログの再構築を促してくる。が、記事が多いと再構築は時間がかかるので、最後のファイルを読み込んだ後にしよう。
【ソース】
' 大きいテキストファイルを3Mぐらいに分割
Option Explicit
Dim WSH : Set WSH = WScript.CreateObject("Wscript.shell")
Dim FSYS : Set FSYS = WScript.CreateObject("Scripting.FileSystemObject")
Const MAXBUF = 2700000
' ダブルクリックで起動したら使い方を示して終わる
if WScript.Arguments.length <> 1 then
Call MsgBox( "Drag&Dropしたファイルを3Mごとに分割する" )
WScript.Quit
end if
' D&Dしたファイル名からフルパスと親フォルダを得る
Dim iName : iName = WScript.Arguments.Item(0) ' D&Dしたファイルのフルパス
Dim iFolder : iFolder = FSYS.getParentFolderName( iName ) & "\" '親フォルダ名
Dim msg : msg = ""
' D&D したファイルを開く
Dim iHandle : Set iHandle = CreateObject("ADODB.Stream")
iHandle.Type = 2 ' text mode
iHandle.charset = "utf-8"
iHandle.LineSeparator = 10 ' lf
iHandle.open
iHandle.LoadFromFile iName '入力ファイルを読み込む
If Err.Number <> 0 Then
Call MsgBox( "Code:" & Err.Number & " :Can not open " & iname )
WScript.Quit
end if
Dim article : article = ""
Dim buf : buf = ""
Dim n : n = 0
Do While iHandle.EOS = False
Dim line : line = iHandle.ReadText( -2 ) & vbLf
if InStr( line, "AUTHOR: " ) = 1 then
if ( Lenb( buf ) + Lenb( article ) ) > MAXBUF then
buf = putBuf( buf, iFolder & "a-" & n & ".txt" )
n = n + 1
end if
buf = buf & article
article = ""
end if
article = article & line
Loop
buf = putBuf( buf & article, iFolder & "a-" & n & ".txt" )
Call MsgBox( n & ": " & msg )
WScript.Quit
' ファイル f にテキスト c を書きだす
Function putBuf( c, f )
putBuf = ""
if Lenb( c ) = 0 then Exit Function
'
Dim oHandle : Set oHandle = CreateObject("ADODB.Stream")
oHandle.Charset = "UTF-8"
oHandle.Open
oHandle.WriteText c, 0
oHandle.SaveToFile f, 2 '上書き
oHandle.Close
end Function
【関連記事】
- 2018.2.4 カテゴリ別書評一覧の新装開店
- 2018.2.5 ココログ(Typepad)のバックアップを複数のファイルに分けるVBScript
- 2018.2.7 ココログの記事一覧で大量の記事を一度に選ぶ
- 2018.2.8 ココログでスマートフォン対応アコーディオン式メニュー但し反則技
- 2018.2.12 ココログのカテゴリーのアーカイブから記事一覧を作るVBScript
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- アンディ・グリーンバーグ「サンドワーム ロシア最恐のハッカー部隊」角川新書 倉科顕司・山田文訳(2025.11.05)
- サミュエル・ウーリー「操作される現実 VR・合成音声・ディープフェイクが生む虚構のプロパガンダ」白揚社 小林啓倫訳(2021.07.11)
- ココログ:記事編集で余分な改行が入る→初期設定を通常エディタにする(2019.10.10)
- Q.Ethan McCallum「バッドデータ ハンドブック データにまつわる問題への19の処方箋」オライリージャパン 磯蘭水監訳 笹井崇司訳(2019.06.07)
- ココログ:リンク切れ一覧と旧URL一覧と公開記事URL一覧を突き合わせるOpenOfficeCalc(2018.11.18)


コメント