Download einer datei mit einem Batchbefehl

joergi schrieb am 18.11.2011 um 23:20 Uhr

Hallo zusammen,
ich hoffe mir kann hier jemadn helfen. Ich poste hier mein problem, da ich immer wieder auf nette Leute hier stoße die mir wirklich schon oft geholfen haben. Es geht diesmal um kein Magix Programm sonder lediglich um eine Programmierung einer Batch Datei.

Hallo liebe User,
ich hoffe ich poste das hier richtig:

hallo liebe user,
ich habe zwei fragen bzgl. einer batch programmierung bzw. befehls.

Frage 1:

ich möchte von folgender Internetseite eine Garfik runterladen lassen.
Ich nenne jetzt mal das Beispiel:

http://home.arcor.de/maxmustermann/Baum.jpg

wie ist es jetzt möglich die Baum.jpg datei mit einem Batchbefehl runterzuladen?
Wenn möglich, soll die Datei da gespeichert werden von wo man auch die Batch datei hat.
gut wäre es natürlich, wenn man einen Pfad angeben kann wo die datei gespeichert werden soll.

Ich habe es damals schonmal per Batch hinbekommen aber leider habe ich die Batchdatei nicht mehr.
Es musste eine download.exe Datei mit in dem Ordner sein, damit der download funktionierte
hier mal der Link (beachtet Punkt 3.)

http://www.sql-und-xml.de/freeware-tools/

ich habe folgenden Batchbefehl im Internet gefunden:
@echo off
title Dateidownload
cd %~dp0
cls
echo #####################
echo #    DATEIDOWNLOAD  #
echo #####################
echo.
set /a url=
set /a path=
download %url% %path%
echo.
pause
exit

jetzt habe ich es so geändert wie ich es dachte das es richtig ist:

@echo off
title Dateidownload
cd %~dp0
cls
echo #####################
echo #    DATEIDOWNLOAD  #
echo #####################
echo.
set /a url=http://home.arcor.de/maxmustermann/Baum.jpg
set /a path=C:/Dateien
download %url% %path%
echo.
pause
exit

Er soll also die datei baum.jpg herunterladen und im Ordner C:/Dateien speichern

Leider funktioniert es aber nicht mit meinem editierten batch.

Wenn die datei dann runtergeladen ist, soll Sie 25 Sekunden später vom Server gelöscht werden.

Ist das möglich?

Hier mal der gsamte Link
http://www.supernature-forum.de/tutorials-and-tipps/103070-dateidownload-per-batch-cmd.html


Frage 2:

Ich möchte nun per Batchbefehl eine datei hochladen lassen (UPLOAD).
Wie kann ich das genau realisieren.

ich weiss dass ich das früher schonmal hinbekommen habe also auch ganz ohne tools wie wget und so.
Könnt ihr mir vielleicht helfen?
wenn ihr nur die Sache mit dem Download wisst ist das auch erstmal ok.

ich brauche also für beide Fragen den batchbefehl


Danke schonmal für eure Hilfe

Kommentare

Dolmant schrieb am 19.11.2011 um 14:38 Uhr

Was als erstes mal auffällt... Deine Pfadangabe ist falsch. Du muss einen Backslash statt einen Slash für die Pfandangabe eingeben also set /a path=C:\Dateien.

Ich würde Dir aber die Nutzung von "curl" empfehlen. Das ist ein Tool mit dem du Daten ziehen (auch ganze Websites) und auch uploaden kannst.

Das Tool ist eine etwas über 200kb große Exe Datei. Installieren muss man da nichts.

Das gibts hier: http://www.paehl.com/open_source/?download=curl_722_0.zip

Eine Beispielbatch lädt eine Datei von einer URL und schiebt sie gleich wieder per FTP auf einen Server. In diesem Beispiel habe ich die curl.exe Datei unter C:\Programme\curl"  abgelegt.

@echo off

set progdir="C:\Program Files\curl\"
set fileurl="http://home.arcor.de/maxmustermann"
set filename="Baum.jpg"


set user="emailaddr@xyz.de"
set passwd="geheim"

set uploadurl="ftp://ftp.magix-online.com"

REM Eine Datei herunterladen
%progdir%\curl.exe -O %fileurl%/%filename%

REM Diese Datei per FTP wieder auf einen server laden
%progdir%\curl.exe -v -T %filename% -u %user%:%passwd% %uploadurl%

Natürlich gibt es noch viele weitere Optionen, weil curl ist wie ein kleines Schweizer Taschenmesser. Es kann verdammt viel. Allerdings muss man sich auch ein bisschen damit beschäftigen wenn man alle Möglichkeiten nutzen will. 

Es gibt aber einige Howtos im Internet.

- Noch eine Ergänzung:

http://blog.thomas-falkner.de/2011/01/25/curl-mit-6-praktischen-beispielen-erklaert/

 

 

Dolmant schrieb am 20.11.2011 um 10:45 Uhr

Script: Alle 20 Sekunden eine Datei löschen und wieder herunterladen -> ein Beispiel:

-----

@echo off

REM --- Variablen Definitionen ---

REM progdir = Pfad zur Programmdatei curl.exe
REM fileurl = Hyperlink zum Dateiverzeichnis im Internet
REM filename= Name der Datei, die aus dem "fileurl" Verzeichnis gezogen werden soll

set progdir="C:\Prorgamme\curl"
set fileurl="http://url.zurDatei.de/bilder"
set filename="Bild1.jpg"

REM -----------------------

REM Hier beginnt das Hauptprogramm in einer Endlosschleife
REM Abbruch mit CTRL+C oder es muss eine Abbruchbedingung programmiert
REM werden.

REM Der Pingbefehl macht nach dem Start im Sekundenabstand eine Aktion. Die Ausgabe
REM des Befehls wird ins "Nirvana" umgeleitet, damit die Konsole nicht vollgeschrieben wird.

REM Es wird geprüft, ob eine bestimmte Datei vorhanden ist. Wenn ja, wird sie gelöscht und sofort
REM versucht, eine neue Version herunter zu laden. Ist sie nicht vorhanden wrd nur versucht
REM sie herunter zu laden.

REM Eigentlich ist der "del" Befehl überflüssig, weil die Datei immer wieder durch den neuen Download
REM überschrieben wird.

:schleifenanfang

IF EXIST %filename% (
  echo "Loesche Datei %filename%"
  del %filename%
  echo "Lade Datei %filename% herunter"
  %progdir%\curl.exe -O %fileurl%/%filename%
) ELSE (
  echo "Datei %filename% nicht vorhanden. Lade diese Datei herunter"
  %progdir%\curl.exe -O %fileurl%/%filename%
)

REM ca. 20 Sekunden (gewuenschte Sekundenzahl+1) warten.
ping -n 21 localhost >nul

GOTO schleifenanfang