klaus20
Goto Top

Mehrere Datein downloaden und umbenennen

Nach langer Zeit versuche ich mal wieder etwas batch zu verstehen bisher bin ich allerdings nicht sehr erfolgreich.

Hallo Forum,

ich habe momentan folgendes Problem:
ich suche nach einer Möglichkeit von einer Internetadresse -> http://www.gkv-datenaustausch.de/Leistungserbringer_Apo_Kotr.gkvnet <- die sieben Dateien runterzuladen und umzutaufen.

Idealerweise würde ich das gerne als batch aufrufen (das soll alles unter 16bit laufen - deßhalb auch das umbenennen) .
Mein momentaner Lösungsansatz:
1. Mit Wget die Seite mit den Links runterladen.
2. Nun suche ich nach einer Möglichkeit die Links auszulesen z.B.: http://www.gkv-datenaustausch.de/upload/AO03Q409_7741.KE1.
3. Mit Wget könnte ich dan mit der direkten Downloadadresse alles runterladen
4.AO03Q409_7741.KE1 umbennenen in AO03Q409.KE1 mit
for %f in (*_*.*) do @for /f "delims=_ tokens=1,*" %i in ("%~nf") do ren "%f" "%i%~xf"
das klappt leider nur am Dospromt - als bat Datei bekomme ich eine Fehlermeldung.

Momentan lade ich alles mit Opera runter und mache mit den Totalcommander die umbenennung. Allerdings ist das Ganze nich wirklich befriedigend.

Wäre schön wenn jemand mir ein wenig helfen könnte.

Vielen Dan und noch einen schönen Abend

Gruß Klaus
Kommentar vom Moderator Biber am 04.11.2009 um 21:38:46 Uhr
...4.AO03Q409_7741.KE1 umbennenen in AO03Q409.KE1 mit ...
#rgc = 623

Content-Key: 128660

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

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: Biber
Biber 04.11.2009 um 21:51:33 Uhr
Goto Top
Moin Klaus20,

zwei Rückfragen.

1.) Was ist denn das Ergebnis von deinem Plan, Punkt 1 "mit WGet die Seite mit den Links herunterladen" ?
Klappt das, ist das Ergebnis eine Textdatei, kannst du deine 7 aktuellen Download-Dateien namensmäßig rausfieseln?

2) bei dem Punkt 4 "klappt am Prompt, bringt Fehler als Batchdatei" ist dir bekannt, dass die einfachen Prozentzeichen vor Laufvariablen in einer Batchdatei verdoppelt werden müssen?

Konkreter: Wenn dieses hier am CMD-Prompt klappt:
for %f in (*_*.*) do @for /f "delims=_ tokens=1,*" %i in ("%~nf") do ren "%f" "%i%~xf"   
dann klappt entsprechen dieses hier im Batch:
for %%f in (*_*.*) do @for /f "delims=_ tokens=1,*" %%i in ("%%~nf") do ren "%%f" "%%i%%~xf"   
... auch wenn es noch so grottig aussehen mag...

Grüße
Biber
Mitglied: Klaus20
Klaus20 04.11.2009 um 22:44:49 Uhr
Goto Top
Erst mal Danke für die promte Antwort

zu 1.

Es wird folgende Datei erzeug (wget -k http://www.gkv-datenaustausch.de/Leistungserbringer_Apo_Kotr.gkvnet) -->Leistungserbringer_Apo_Kotr.gkvnet (515 Zeilen)

Es gibt 7 solcher Zeilen - habe nur keine Ahnung wie ich die Links rausfiltern soll.
<a id="ctl00_listRepeater_ctl00_moreLink" title="Öffnet das 60,9 kB große KE1 in einem neuen Fenster" class="moreLink ke1" href="http://www.gkv-datenaustausch.de/upload/AO03Q409_7741.KE1" target="_blank">AO03Q409 (60,9 kB)</a>

zu 2. Es klappt wunderbar (ich weiß zwar nicht warum aber ...) DANKE

Gruß Klaus
Mitglied: 60730
60730 04.11.2009 um 23:23:07 Uhr
Goto Top
Servus,

1) würde ich nicht machen
2) entfällt daher
3) ist der richtige Ansatz
4) hat Biber ja schon er/geklärt.

3&4 als vierzeilerface-smile
wget -r -l1 /p /ke1 --no-parent -.ke1 http://www.gkv-datenaustausch.de/Leistungserbringer_Apo_Kotr.gkvnet
cd \ke1\http://www.gkv-datenaustausch.de/Leistungserbringer_Apo_Kotr.gkvnet\
for %%f in (*_*.ke1) do @for /f "delims=_ tokens=1,*" %%i in ("%%~nf") do ren "%%f" "%%i%%~xf"  
copy *.ke1 wohinauch immer


Gruß
Mitglied: paulepank
paulepank 05.11.2009 um 00:19:04 Uhr
Goto Top
Hallo Klaus,

tut mir leid, daß du in Bibers Rankingliste die Schnapszahl verfehlt hast.
deßhalb auch das umbenennen
deshalb mußt du nicht gleich eine Rechtschreibreform einleiten.

zum wget:

Das rausfiltern der 6 (sechs) Links ist doch recht kompliziert.
Mit der Vermutung, daß die Dateien immer *.KE* und *.ke* lauten und kein Verzeichnis angelegt werden soll, geht das mit wget so:
wget -r -A *.[Kk]* -nd http://www.gkv-datenaustausch.de/Leistungserbringer_Apo_Kotr.gkvnet

Das umbenamsen ist ja bereits dargelegt worden.
Die Zeile 1 von TimoBeil ist leicht daneben.

cu paulepank
Mitglied: Klaus20
Klaus20 05.11.2009 um 08:07:51 Uhr
Goto Top
Erst mal vielen Dank für die schnelle und gute Lösung. Ich sitze seit einer Woch und versuche das Problem zu lösen.

Nun meine vorerst letzten Fragen
1. was ist besser *.cmd oder *.bat
2. Das ganze ohne Bildschirmausgabe nur vielleicht mit einer Meldung ?
3. Copy von c:\dddd\gggg*.* nach D:\dddd\gggg\hhh ?
4. Gibt es bei wget eine Option abzufragen ob eine Internetverbindung besteht ?
5. Wie kann ich den Standardrucker abfragen und mit einer Meldung weitergeben ?

Viele Grüße Klaus
Mitglied: 60730
60730 05.11.2009 um 09:05:39 Uhr
Goto Top
Zitat von @Klaus20:
Erst mal vielen Dank für die schnelle und gute Lösung. Ich sitze seit einer Woch und versuche das Problem zu lösen.

Nun meine vorerst letzten Fragen
1. was ist besser *.cmd oder *.bat

in dem Fall - lieber cmd - denn daran erkennt man - das es etwas "fieser" zugeht - bat könnte auch win98 öffnen.

2. Das ganze ohne Bildschirmausgabe nur vielleicht mit einer Meldung
?
3. Copy von c:\dddd\gggg*.* nach D:\dddd\gggg\hhh ?
Nur ein Beispiel....(obwohl ich ja "wohinauchimmer genommen habe)

Viele Grüße Klaus

@paule -ähh jo -... never ever schreibe scripte aus dem Bauch raus
Mitglied: Biber
Biber 05.11.2009 um 09:10:14 Uhr
Goto Top
Moin Klaus20,

eine Teilantwort zu den Folgefragen:
1. was ist besser *.cmd oder *.bat
Diese FOR-Anweisung, die oben verwendet wird funktioniert nur unter der CMD.exe (dem "CMD-Prompt" der halbwegs aktuellen Windows-Versionen).
Unter dem altbekannten und altbackenen "DOS-Prompt" (command.com) der DOS-Versionen 2.1 - 6.x würde die nicht fliegen.
Die command.com kennt als Batchdatei-Endung nur *.bat, die Cmd.exe kennt *.bat und die Endung .cmd
Wenn du also die Endung .cmd verwendest, hast du zwei Vorteile
a) diese Datei wird nie "aus Versehen" von der command.com als Batchdatei aufgerufen werden und Syntaxfehler anmeckern, weil sie ja gar nicht als Batchdatei anerkannt/wahrgenommen wird.
b) durch die Endung *.cmd weißt du als Programmersteller sofort, dass du diese Batchdatei für die Cmd.exe geschrieben hast / dass es keine Alt-Datei ist, die noch seit deinem ersten IBM-XT mitschleppst.

2. Das ganze ohne Bildschirmausgabe nur vielleicht mit einer Meldung ?
Ist doch ein freies Land hier, sagt die FDP. Du bist Deutschland. Mach, wie es für deinen Arbeitsprozess am sinnvollsten ist.
Wenn du es letzten Endes immer manuell startest und ohnehin vor dem Bildschirm sitzt--> schau dir doch die ganzen Meldungen auf dem Schirm an.
Wenn es automatisch an jedem Freitag im Hintergrund läuft, du im Normalfall keine Fehler erwartest -> schreib die wichtigsten Sachen (neue Dateien und Datum) in eine Logdatei und nichts auf den Bildschirm.

Grüße
Biber
Mitglied: 60730
60730 05.11.2009 um 10:05:54 Uhr
Goto Top
@Biber:

an dieser Stelle mal ein grass fettes Lob für den geduldigsten und besten Nager, dem wo geben tut.

So "ausfühlich" - wie immer und das nehm ich mir mal als gutes Beispiel face-wink

@ Klaus:

dein "neuer" Punkt 5 - auch den würde ich anders machen..

notepad /p meinelogdatei.txt
ganz ohne Abfrage, welcher Standdarddrucker denn nun aktiv ist. (wobei das aber auch wieder aus dem Bauch heraus geschrieben ist)
(der sollte aber dann auch an sein...nicht der Bauch, der Drucker)

Gruß
Mitglied: Klaus20
Klaus20 05.11.2009 um 10:10:30 Uhr
Goto Top
Eure promten Antworten bzw. Hilfen finde ich unheimlich gut nochmals ein dickes DANKE !!
Zur Bildschirmausgabe:
Ich rufe die CMD Datei unter Foxpro im Dos Fenster auf deshalb wäre es mir ohne Meldung lieber. Wie kann ich die neuen Daten in eine Logdatei schreiben bzw. anfügen ?

Viele Grüße Klaus
Mitglied: 60730
60730 05.11.2009 um 10:57:14 Uhr
Goto Top
Zitat von @Klaus20:
Eure promten Antworten bzw. Hilfen finde ich unheimlich gut nochmals
ein dickes DANKE !!
Zur Bildschirmausgabe:
Ich rufe die CMD Datei unter Foxpro im Dos Fenster auf deshalb wäre es mir ohne Meldung lieber.

  • wget --help - kennt u.a - q qiet
Wie kann ich die neuen Daten in eine Logdatei schreiben bzw. anfügen ?
Wget -o logdatei (ohne leerzeichen)

Gruß
Mitglied: Klaus20
Klaus20 05.11.2009 um 14:50:45 Uhr
Goto Top
Klappt alles wunderbar.

Nochmals vielen Dank

Gruß Klaus
Mitglied: Klaus20
Klaus20 23.03.2011 um 08:58:34 Uhr
Goto Top
Gibt es eine Möglichkeit bat/cmd in exe umzuwandeln und die Meldungen als Windows Meldung auszugeben ???

Vielen Dank Klaus
Mitglied: Biber
Biber 23.03.2011 um 09:34:44 Uhr
Goto Top
Moin Klaus20,

Zitat von @Klaus20:
Gibt es eine Möglichkeit bat/cmd in exe umzuwandeln und die Meldungen als Windows Meldung auszugeben ???

Vielen Dank Klaus

Lass mich kurz zusammenfassen...
In einer Frage mit dem Titel "Mehrere Datein downloaden und umbenennen " aus dem November 2009,
die nach mehreren Nachklappfragen endlich als "abgehakt" markiert ist,
stellst du im März 2011 die Ach-übrigens-da-fällt-mir-ein-Fragen
  • "Gibt es eine Möglichkeit bat/cmd in exe umzuwandeln" und
  • "Wie kann ich Meldungen als Windows Meldung ausgeben?"

????

Wenn du magst, könnten wir auch die naheliegende Frage "Braucht die deutsche Bundesliga eine Winterpause?" diskutieren.

Grüße
Biber
Mitglied: Klaus20
Klaus20 23.03.2011 um 13:00:59 Uhr
Goto Top
Hallo Biber,

hast recht war etwas unüberlegt von mir.
Werde im Forum eine neue Anfrage stellen.

Grüße Klaus
Mitglied: Biber
Biber 23.03.2011 um 13:20:32 Uhr
Goto Top
Danke, Klaus20,

im Gegenzug schliesse ich diesen Beitrag hier.

Viel Glück beim neuen Beitrag
Biber