大量のファイルをダウンロードして名前を変更するユーティリティですか?

大量のファイルをダウンロードして名前を変更するユーティリティですか?

このBashスクリプト数個のファイルをダウンロードするだけでは問題ありませんが、100 個を超えるファイルをダウンロードする必要があります。ビジュアルWGetファイルのファイルをダウンロードすることはできますが、名前を変更することはできません。

列 1 にファイルへの完全な URL が含まれ、列 2 に名前変更に使用する名前が含まれる 2 列のテキスト リストを取得する Windows ユーティリティをご存知の方はいませんか?

答え1

Download Accelerator Plus (DAP) を使用して、ダウンロードと名前の変更の両方を行うこともできます。

DAP リストを作成し、それをアプリにインポートし、ファイルを保存するフォルダーを選択するだけで、あとはアプリに任せるだけです。

DAP リストを作成するには、テキスト エディターを開き、ダウンロードするファイルごとに次のように入力します。

<filelist_index><fileinfo>
    <filename>FILENAME.EXT</filename>
    <url>FULL_URL_TO_FILE</url>
</fileinfo></filelist_index>

FILENAME.EXT を希望のファイル名に置き換えます (ファイル拡張子を忘れないでください)。MS Excel を使用してコードを統合し、テキスト ファイルにコピーして貼り付け、XXX.DAP ファイルとして保存します。サンプルのスプレッドシートを次に示します。http://ge.tt/6sO1B2g

答え2

または、Windows PowerShell を使用します...

$folder = "D:\Output\"
$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
$web = New-Object System.Net.WebClient
$web.Headers.Add("user-agent", $userAgent)
$input = "D:\todownload.txt"
$delimit = " "

Get-Content $input |
    Foreach-Object { 
        $line = $_.split($delimit);
        $destination_file = ([io.path]::getfilename($line[1]))
        "[" + $destination_file  + "]" + "Downloading " + $line[0]
        try {
            $target = join-path $folder $destination_file
            $web.DownloadFile($line[0], $target)
        } catch {
            $_.Exception.Message + ": " + $destination_file
            add-content (join-path $folder ("downloader" + ".log")) ("[" + $destination_file + "] " + $_.Exception.Message)
            add-content (join-path $folder ("downloader" + ".retry")) ($line -join " ")
        }
    }

入力ファイル (todownload.txt) の形式は次のとおりです。

http://path.to.download.com/file.jpg 0001_NewFileName_file.jpg

答え3

Firefoxの拡張機能を試してみるといいでしょうダウンゼムオール!ページから複数のリンクをダウンロードでき、ダウンロード リストをフィルターしたり、名前変更パターンを適用したりすることもできます。

答え4

perl -MLWP::Simple -n -e '($u,$n)=split;getstore($u,$n)' filenames.txt

(テスト済み)

ここでfilenames.txtには次のような内容が含まれています

http://foo.com/a/b?parm=x この.dat
http://bar.org//d/e/f.html その.html

同じスクリプトを長くしたもの

パール
厳密なものを使用します。
警告を使用する。
LWP::Simple を使用します。

open my $fh, '<', "filenames.txt" or die "$!\n のため filenames.txt を読み取れません";
その間 () {
  私の ($url, $newname) = 分割;
  $url と $newname をストアします。
}

(未テスト)

関連情報