
Dieses Bash-SkriptEs ist ok, nur ein paar Dateien herunterzuladen, aber ich muss über hundert davon herunterladen.VisualWGetkann eine Datei mit Dateien herunterladen, diese jedoch nicht umbenennen.
Kennt jemand ein Windows-Dienstprogramm, das eine zweispaltige Textliste akzeptiert, wobei Spalte 1 die vollständige URL zur Datei und Spalte 2 den zum Umbenennen zu verwendenden Namen enthält?
Antwort1
Sie können zum Herunterladen und Umbenennen auch Download Accelerator Plus (DAP) verwenden.
Sie müssen lediglich eine DAP-Liste erstellen, sie in die App importieren, den Ordner auswählen, in dem die Dateien gespeichert werden sollen, und die App dann die Arbeit erledigen lassen.
Um eine DAP-Liste zu erstellen, öffnen Sie einfach einen Texteditor und geben Sie Folgendes für jede Datei ein, die Sie herunterladen möchten:
<filelist_index><fileinfo>
<filename>FILENAME.EXT</filename>
<url>FULL_URL_TO_FILE</url>
</fileinfo></filelist_index>
Ersetzen Sie FILENAME.EXT durch den gewünschten Dateinamen (vergessen Sie nicht die Dateierweiterung). Verwenden Sie einfach MS Excel, um den Code zu konsolidieren, kopieren Sie ihn dann in eine Textdatei und speichern Sie sie als XXX.DAP-Datei. Hier ist eine Beispieltabelle:http://ge.tt/6sO1B2g
Antwort2
Oder mithilfe von 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 " ")
}
}
Die Eingabedatei (todownload.txt) hat das Format:
http://path.to.download.com/file.jpg 0001_NewFileName_file.jpg
Antwort3
Sie können die Firefox-Erweiterung ausprobierenMach sie alle nieder!. Es können mehrere Links von einer Seite heruntergeladen werden, Sie können die Downloadliste filtern und auch ein Umbenennungsmuster anwenden.
Antwort4
perl -MLWP::Simple -n -e '($u,$n)=split;getstore($u,$n)' filenames.txt
(Getestet OK)
wobei filenames.txt etwas enthält wie
http://foo.com/a/b?parm=x this.dat http://bar.org//d/e/f.html das.html
Das gleiche Skript in längerer Form
#!/usr/bin/perl streng verwenden; Warnungen verwenden; verwenden Sie LWP::Simple; öffne mein $fh, '<', "filenames.txt" oder die "kann filenames.txt nicht lesen, weil $!\n"; während () { mein ($url, $neuername) = teilen; getstore($url, $neuername); }
(Ungetestet)