windowsのPowerShellでURLのリストからファイルをダウンロードするスクリプトのサンプルを見つけたので
これでgooブログ画像バックアップができないか、いろいろ試してみた話です。
PowerShellはあんまり詳しくないので、試行錯誤でした。
前準備ができたら、
・ブログ新規作成で画像を原寸で全部貼り付け
・HTMLの表示にして画像リストを作成
・スクリプトを実行
って感じです。
前準備として、
以下の、見つけてきたスクリプトを修正したものを「goo_dl.ps1」というファイル名で保存しておきます。
Param([String]$path='C:\goo', [String]$file='list.txt')
$cli = New-Object System.Net.WebClient
foreach($url in Get-Content $file){
$uri = New-Object System.Uri($url)
$file = Split-Path $uri.AbsolutePath -Leaf
$cli.DownloadFile($uri, (Join-Path $path $file))
}
このスクリプトではダウンロード先を
「c:¥goo」
としているので、Cドライブに直接「goo」というフォルダを作成しておきます。
そして、保存したスクリプトのファイル「goo_dl.ps1」と同じフォルダに
list.txt
というファイルをメモ帳で作って、これに画像リストを貼り付けるようにします。
準備ができたら、gooブログでブログ新規作成していきます。
特に文字とか書かずに、「画像」からどんどん原寸で画像を貼り付けていきます。
貼り付け終わったら、右下にあるHTML表示をクリックすると
画像のURLが表示される。
HTML表示すると、「HTML」のところが「テキスト」になりますね。
で、この「https://」から「.png」とか「.jpg」とかの部分を取り出すんですが、
面倒なので、とりあえず全部メモ帳に貼り付けて、不要な部分を置き換えで消しました。
それをさっき作っておいた「 list.txt」に貼り付けて保存します。
あとは「goo_dl.ps1」をPowerShellで実行したら、
「c:¥goo」のフォルダにファイルがどんどん溜まっていきました。
人によってはPowerShellの実行がセキュリティの関係で
単に実行できないところもあるようですが、実行できたら全部ダウンロードされるまで待つだけでした。
これで一安心。
実行するとき「list.txt」はスクリプトと同じフォルダに置きましたが、
実行の仕方によってはカレントが異なっていて、リストのファイルを見つけられないとか
あるかもしれないので、「list.txt」をフルパス指定に修正しておくと確実かもしれません。


