wget aufruf mit zähler
Also ich bräuchte ne battch für windows die mir folgendes ermöglicht..
Ich möchte aus dem internet mittels wget mehrere durchnummerierte dateien runterladen. also brauche ich ne batch in der ich die anzal der dateine festlegen kann, die stellen der zahelen (also das dann bei ner dreistelligen zahl 000. 001, 002 usw gezählt wird) und der das halt so lange wiederholt bis alle dateinen runtergeladen wurden.
Also das er bei 10 dateine halt das in die URL www.xyz.de/foto_<wert>.jpg sagen wir mal mit dre stellen das eingefügt wird und das dann 10 mal ausgefürt wird bis halt der wert 10 erreicht wuede.
Ich danke für euche Hilfe.
Nemo PS: Ich hoffe das ich mich nicht all zu umstänlich ausgedrückt habe.
Ich möchte aus dem internet mittels wget mehrere durchnummerierte dateien runterladen. also brauche ich ne batch in der ich die anzal der dateine festlegen kann, die stellen der zahelen (also das dann bei ner dreistelligen zahl 000. 001, 002 usw gezählt wird) und der das halt so lange wiederholt bis alle dateinen runtergeladen wurden.
Also das er bei 10 dateine halt das in die URL www.xyz.de/foto_<wert>.jpg sagen wir mal mit dre stellen das eingefügt wird und das dann 10 mal ausgefürt wird bis halt der wert 10 erreicht wuede.
Ich danke für euche Hilfe.
Nemo PS: Ich hoffe das ich mich nicht all zu umstänlich ausgedrückt habe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 24512
Url: https://administrator.de/contentid/24512
Ausgedruckt am: 26.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
das sollte mit wget eigentlich auch ohne eine Batch mit nem Zähler funktionieren.
Allerdings brauchst Du dazu das exakte Verzeichnis auf dem Webserver, wo die Bilder
liegen. Genau für diese Anwendung hat wget die Recursive Funmktion,
diese sollte man aber mit Vorsicht verwenden, da er dann wirklich rekursiv durch
die Verzeichnisse sucht, also die Rekursionstiefe entsprechend niedrig einstellen,
und wget lieber mehrmals mit verschiedenen Verzeichnissen aufrufen.
Die Kommandozeilenoptionen, die Du dazu brauchst lauten:
-r (für rekursive Suche)
und
--accept=*.jpg (für die Dateien, die Du haben willst, wenn die unterschiedliche
Endungen haben, dann z.B. --accept=*.gif,*.jpg,*.tif usw.)
sowie
--level=1 (für die Rekursionstiefe, wie gesagt, nicht viel höher einstellen, und wenn,
dann nur Schrittweise, bis es funktioniert!)
In die Accept-List aber nur das eintragen, was Du wirklich runterladen willst!
Beispiel:
wget -r --level=1 --accept=*.jpg www.xyz.de/fotos/
damit lädt er alle *.jpg aus vom Webserver www.xyz.de im Unterverziechnis /fotos/
Gruss
cykes
das sollte mit wget eigentlich auch ohne eine Batch mit nem Zähler funktionieren.
Allerdings brauchst Du dazu das exakte Verzeichnis auf dem Webserver, wo die Bilder
liegen. Genau für diese Anwendung hat wget die Recursive Funmktion,
diese sollte man aber mit Vorsicht verwenden, da er dann wirklich rekursiv durch
die Verzeichnisse sucht, also die Rekursionstiefe entsprechend niedrig einstellen,
und wget lieber mehrmals mit verschiedenen Verzeichnissen aufrufen.
Die Kommandozeilenoptionen, die Du dazu brauchst lauten:
-r (für rekursive Suche)
und
--accept=*.jpg (für die Dateien, die Du haben willst, wenn die unterschiedliche
Endungen haben, dann z.B. --accept=*.gif,*.jpg,*.tif usw.)
sowie
--level=1 (für die Rekursionstiefe, wie gesagt, nicht viel höher einstellen, und wenn,
dann nur Schrittweise, bis es funktioniert!)
In die Accept-List aber nur das eintragen, was Du wirklich runterladen willst!
Beispiel:
wget -r --level=1 --accept=*.jpg www.xyz.de/fotos/
damit lädt er alle *.jpg aus vom Webserver www.xyz.de im Unterverziechnis /fotos/
Gruss
cykes
Ach so, NemoArmitage,
jetzt verstehe ich (glaub ich) die Frage. Ich hätte sonst cykes Antwort für die richtige gehalten.
Okay, deine Anforderung würde ich wie folgt abfackeln
:: --snipp wgetMitCounter.bat
@echo off & setlocal EnableDelayedExpansion
:: drei Parameter
:1) Namens-Muster für Dateinamen "abc_"
:2) Bis-Zähler/Maximum der Höchzählerei
:3) Länge des "00x"-Teils. Also 3 bei "00x", 2 bei "0x", 5 bei "0000x"
Set /a "Max=%2"
Set /a "LenOfCnt=%3"
For /L %%i in (1,1, %Max%) do call :DoTheWGet %%i %1
goto :eof
:DoTheWGet
Set "StringCnt=000000%1"
Set "StringCnt=!StringCnt:~-%LenOfCnt%!
Echo Ergebnis: Mask+StringCnt=[%2%StringCnt%]
::: hier den Wget anpassen wget -r --level=1 --accept=*.jpg www.xyz.de/fotos/
goto :eof
:: --snapp wgetMitCounter.bat
$cmd$ wgetMitCounter.bat abc_ 11 3
Ergebnis: Mask+StringCnt=[abc_001]
Ergebnis: Mask+StringCnt=[abc_002]
Ergebnis: Mask+StringCnt=[abc_003]
Ergebnis: Mask+StringCnt=[abc_004]
Ergebnis: Mask+StringCnt=[abc_005]
Ergebnis: Mask+StringCnt=[abc_006]
Ergebnis: Mask+StringCnt=[abc_007]
Ergebnis: Mask+StringCnt=[abc_008]
Ergebnis: Mask+StringCnt=[abc_009]
Ergebnis: Mask+StringCnt=[abc_010]
Ergebnis: Mask+StringCnt=[abc_011]
ich hoffe, die Skizze zeigt Dir den Weg. Den eigentlichen wget-Aufruf musst Du natürlich noch anpassen.
Kannst ja das endgültige Ergebnis bitte posten.
HTH Biber
jetzt verstehe ich (glaub ich) die Frage. Ich hätte sonst cykes Antwort für die richtige gehalten.
Okay, deine Anforderung würde ich wie folgt abfackeln
:: --snipp wgetMitCounter.bat
@echo off & setlocal EnableDelayedExpansion
:: drei Parameter
:1) Namens-Muster für Dateinamen "abc_"
:2) Bis-Zähler/Maximum der Höchzählerei
:3) Länge des "00x"-Teils. Also 3 bei "00x", 2 bei "0x", 5 bei "0000x"
Set /a "Max=%2"
Set /a "LenOfCnt=%3"
For /L %%i in (1,1, %Max%) do call :DoTheWGet %%i %1
goto :eof
:DoTheWGet
Set "StringCnt=000000%1"
Set "StringCnt=!StringCnt:~-%LenOfCnt%!
Echo Ergebnis: Mask+StringCnt=[%2%StringCnt%]
::: hier den Wget anpassen wget -r --level=1 --accept=*.jpg www.xyz.de/fotos/
goto :eof
:: --snapp wgetMitCounter.bat
$cmd$ wgetMitCounter.bat abc_ 11 3
Ergebnis: Mask+StringCnt=[abc_001]
Ergebnis: Mask+StringCnt=[abc_002]
Ergebnis: Mask+StringCnt=[abc_003]
Ergebnis: Mask+StringCnt=[abc_004]
Ergebnis: Mask+StringCnt=[abc_005]
Ergebnis: Mask+StringCnt=[abc_006]
Ergebnis: Mask+StringCnt=[abc_007]
Ergebnis: Mask+StringCnt=[abc_008]
Ergebnis: Mask+StringCnt=[abc_009]
Ergebnis: Mask+StringCnt=[abc_010]
Ergebnis: Mask+StringCnt=[abc_011]
ich hoffe, die Skizze zeigt Dir den Weg. Den eigentlichen wget-Aufruf musst Du natürlich noch anpassen.
Kannst ja das endgültige Ergebnis bitte posten.
HTH Biber