
Этот скрипт BashМожно загрузить всего несколько файлов, но мне нужно загрузить более сотни.VisualWGetможет загрузить файл файлов, но не может переименовать их.
Знает ли кто-нибудь утилиту для Windows, которая принимала бы текстовый список из двух столбцов, где столбец 1 содержал бы полный URL-адрес файла, а столбец 2 — имя, которое будет использоваться для переименования?
решение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
Тот же сценарий в более длинной форме
#!/usr/bin/perl использовать строго; используйте предупреждения; использовать LWP::Simple; открыть мой $fh, '<', "filenames.txt" или умереть "не могу прочитать filenames.txt потому что $!\n"; пока () { мой ($url, $newname) = разделить; getstore($url, $newname); }
(Не проверено)