nemoarmitage
Goto Top

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.

Content-Key: 24512

Url: https://administrator.de/contentid/24512

Printed on: April 19, 2024 at 14:04 o'clock

Member: cykes
cykes Jan 26, 2006 at 07:19:00 (UTC)
Goto Top
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
Member: NemoArmitage
NemoArmitage Jan 29, 2006 at 12:54:21 (UTC)
Goto Top
Danke. Für die hilfe. Aber dass das geht das weiß ich. face-smile Das Porblem ist nur das wget auf der seite aus unerfindlichen Gründen den links nicht folgen kann. Also bräuchte ich doch so eine Batch datei.

Ich würde sie mir ja selber schreiben. aber ich muß gestehen das in meiner Ausbildungs zum FSI dieses Thema gerade mal so behandelt wurde das ich gerade mal nen Anmeldescript schreiben kann.

Nunja das porblem ist volgendes ich weiß den pfad zu der datei bzw die url. Die ist sagen wir mal www.abc.de/def/ und ich weiß das die dateien z.B. so benannt sind: abc_001.jpg abc_002.jpg usw.
Nun bräuchte ich halt nen script das die Nummer weiter zählt und bei dem ich halt auch die anzal der dateien und die anzahl der stellen angeben kann. Also sprich das er bei drei stellen bei 000 anfängt und bei zwei stellen bei 00 und bei einer bei 0 usw.
Member: Biber
Biber Jan 29, 2006 at 13:40:20 (UTC)
Goto Top
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
:face-sad1) Namens-Muster für Dateinamen "abc_"
:face-sad2) Bis-Zähler/Maximum der Höchzählerei
:face-sad3) 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
Member: NemoArmitage
NemoArmitage Jan 31, 2006 at 11:23:11 (UTC)
Goto Top
Das endgültige Ergebnis:

REM --snipp wgetMitCounter.bat
@echo off & setlocal EnableDelayedExpansion
REM drei Parameter
REM (1) Namens-Muster für Dateinamen "abc_"
REM (2) Bis-Zähler/Maximum der Höchzählerei
REM (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%!
wget www.xyz.de/fotos/%2%StringCnt%.jpg
REM : hier den Wget anpassen wget -r --level=1 --accept=*.jpg www.xyz.de/fotos/
goto :eof
REM --snapp wgetMitCounter.bat

Danke für die Hilfe.