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」をフルパス指定に修正しておくと確実かもしれません。