Wie speichere ich automatisch eine Liste von Dateien mit unterschiedlichen Namen?

Wie speichere ich automatisch eine Liste von Dateien mit unterschiedlichen Namen?

Ich habe eine Textdatei mit URLs, jeweils in der Form:

http://domain.com/a/b/c/d.jpg

Ich möchte alle herunterladen, aber jede Datei unter dem Namen speichern:

c_d.jpg

Mit anderen Worten: Ich möchte jede Datei unter ihrem ursprünglichen Dateinamen speichern, dem der Name des übergeordneten Verzeichnisses vorangestellt ist.

Wie würde ich dies unter Windows tun?

Ich kann problemlos ein Befehlszeilentool wie wget oder curl verwenden. Geben Sie mir einfach die Argumente.

Danke.

Antwort1

Ich bin nicht sicher, wie das in einer reinen Windows-Umgebung geht, aber in einer Cygwin-Umgebung könnten Sie Folgendes versuchen: (erfordert Bash, Sed, Wget)

while read link; do a=`echo $link | sed 's/.*\/\(.*\)\/\(.*\)/wget \0 -O \1_\2/'`; echo $a; $($a); done < links.txt

wobei links.txt Ihre Datei ist.

Natürlich können Sie den Sed-Ausdruck anpassen, um den Link trotzdem in einen Dateinamen umzuwandeln.

Prost

verwandte Informationen