Batchdatei erstellen (autom. Download in best. Ordner)
Möchte ein Batchdatei welche mir meine täglichen arbeiten am pc erleichtert.
Eins vorweg ich bin Leihe in Sachen Batchdateierstellung. Ich benutze: Windows XP SP2
Hi Admins ich habe folgendes Problem...
ich benötige eine Batchdatei welche tägl.(an amerikanisch Werkstagen)
eine Datei aus dem Internet lädt und in einen Ordner ablegt.
PS: Wenn kein Amerikanischer Werkstag ist ist da auch keine Datei da.
Die Datei ist folgendermaßen aufgebaut und liegt dort: (die Quelle ist immer die selbe)
"http:// www.teste-seite.de/test/130507.exe" [ttmmjj.exe]
(nur ein Beispie) (um in den Pfad u kommen muss ich auch einen Benutzername angeben und ein Passwort)
Da soll die Datei dann abgelegt werden:
"C:\Programme\Prog-Name\Unterordner\ttmmjj.exe"
Am Ende soll eine Batchdatei aufgerufen werden welch ich aber schon habe.
Ich bedanke mich bei allen im Vorraus, bei denen die sich mit mir darüber
Gedanken machen. Und nützliche Beiträge beisteuern.
Beziehungsweise welche Möglichkeiten habe ich mein Ziel zu erreichen.
Mir würden schon Schlagwörter ausreichen den Rest würde ich mir u.U. selbst anlernen.
Ich denke das könnte für viele User einne nützliche sache sein.
Habe auch schon von einer Batch gelesen welche Vierenprogs aktualisiert wer so was hatt dafür wäre ich schon dankbar.
Und ich hätte eine Grundlage.
ich benötige eine Batchdatei welche tägl.(an amerikanisch Werkstagen)
eine Datei aus dem Internet lädt und in einen Ordner ablegt.
PS: Wenn kein Amerikanischer Werkstag ist ist da auch keine Datei da.
Die Datei ist folgendermaßen aufgebaut und liegt dort: (die Quelle ist immer die selbe)
"http:// www.teste-seite.de/test/130507.exe" [ttmmjj.exe]
(nur ein Beispie) (um in den Pfad u kommen muss ich auch einen Benutzername angeben und ein Passwort)
Da soll die Datei dann abgelegt werden:
"C:\Programme\Prog-Name\Unterordner\ttmmjj.exe"
Am Ende soll eine Batchdatei aufgerufen werden welch ich aber schon habe.
Ich bedanke mich bei allen im Vorraus, bei denen die sich mit mir darüber
Gedanken machen. Und nützliche Beiträge beisteuern.
Beziehungsweise welche Möglichkeiten habe ich mein Ziel zu erreichen.
Mir würden schon Schlagwörter ausreichen den Rest würde ich mir u.U. selbst anlernen.
Ich denke das könnte für viele User einne nützliche sache sein.
Habe auch schon von einer Batch gelesen welche Vierenprogs aktualisiert wer so was hatt dafür wäre ich schon dankbar.
Und ich hätte eine Grundlage.
Please also mark the comments that contributed to the solution of the article
Content-Key: 58895
Url: https://administrator.de/contentid/58895
Printed on: April 26, 2024 at 14:04 o'clock
9 Comments
Latest comment
Hi!
das Einzige was mit spontan einfällt ist das Tool WGet. (WGet ist allerdings auch in den UNXTools enthalten!)
Hier drüber lassen sich Dateien herunterladen.
Für das zurückgeben eines Datums (auch formatiert) nutze ich ab und an die UNXTools , die von Unix her auf Windows portiert worden sind. Speziell hier würde ich die date.exe benutzen.
Folgende Zeile gibt das Datum, wie gewünscht zurück:
Mit folgender Zeile lädst du deine Datei in das Verzeichnis herunter, wo auch die date.exe und deine Batch-Datei liegt.
(%~dp0 = Pfad in der die Batchdatei liegt)
Wenn du dann noch die Datei ausführen möchtest ergänzt du dann noch:
Es ist zwar auch möglich mit dem internen Windows Befehlen das Datum zu formatieren, aber ein gutes Pferd springt nicht höher wie es muss, ne?
Bei Fragen, meld dich einfach nochmal Ansonsten noch viel Erfolg!
Gruß
Markus
das Einzige was mit spontan einfällt ist das Tool WGet. (WGet ist allerdings auch in den UNXTools enthalten!)
Hier drüber lassen sich Dateien herunterladen.
Für das zurückgeben eines Datums (auch formatiert) nutze ich ab und an die UNXTools , die von Unix her auf Windows portiert worden sind. Speziell hier würde ich die date.exe benutzen.
Folgende Zeile gibt das Datum, wie gewünscht zurück:
date.exe +%d%m%y
Mit folgender Zeile lädst du deine Datei in das Verzeichnis herunter, wo auch die date.exe und deine Batch-Datei liegt.
(%~dp0 = Pfad in der die Batchdatei liegt)
for /F %%i in ('%~dp0\date.exe +%%d%%m%%y') do set test=%%i
wget "http:// www.teste-seite.de/test/%test%.exe"
Wenn du dann noch die Datei ausführen möchtest ergänzt du dann noch:
"%~dp0\%test%.exe"
Es ist zwar auch möglich mit dem internen Windows Befehlen das Datum zu formatieren, aber ein gutes Pferd springt nicht höher wie es muss, ne?
Bei Fragen, meld dich einfach nochmal Ansonsten noch viel Erfolg!
Gruß
Markus
[edit]nur in Ergänzung zu "problemsolver"[/edit]
http://toolsandmore.de/Central/Produkte/Software/Internet/Download/Easy ...
http://toolsandmore.de/Central/Produkte/Software/Internet/Download/Easy ...
So weit so gut ...
müssen die beiden Programme Wget und
das UNXUtils dann die ganze Zeit laufen ?
müssen die beiden Programme Wget und
das UNXUtils dann die ganze Zeit laufen ?
Nein. Das sind simple standalone Exe-Files
Und ist mein Problem nicht über eine
einzige Batchdatei lösbar.
einzige Batchdatei lösbar.
Wenn du meinen Beitrag liest, siehst du auch, dass es sich eeeigentlich um eine einzige Batch handelt.
Sollte vielleich mal näher
erklären:
die zu downloadene Datei ttmmjj.exe steht
immer ab ...
Beispiel: 140507.exe steht z.B:
spätestens am selben Tag um 22:00 im
Netz
Aufruf der Batch über einen geplanten Task, der um 23 Uhr automatisch die Datei herunterlädt.
auf jeden Fall aber am
darauffolgenden Tag.
also soll wenn ich die
Batchdatei früh ausführen lasse
nach start meines Pc's
abgefragt werden aktuelles
datum -1 (für den gestrigen tag
darauffolgenden Tag.
also soll wenn ich die
Batchdatei früh ausführen lasse
nach start meines Pc's
abgefragt werden aktuelles
datum -1 (für den gestrigen tag
Hier wird es wohl komplizierter bei einer Batch-Datei. Datumsberechnungen sind so oder so eine Sache für sich. Allgemeine Berechnungen z.B.
set /A ergebnis=5+2
echo %ergebnis%
:: Inhalt der Variablen Ergebnis ist hier 7
[vereinfacht dargestellt]),
ob diese Datei vorhanden ist.
wenn ja lade sie herunter in den oben
genannten Ordner.
@problemslover könntest du die
quellltextzeilen kurz kommentieren, wie
gesagt bin noch leihe,
damit ich inh nachvollziehen kann.
ob diese Datei vorhanden ist.
wenn ja lade sie herunter in den oben
genannten Ordner.
@problemslover könntest du die
quellltextzeilen kurz kommentieren, wie
gesagt bin noch leihe,
damit ich inh nachvollziehen kann.
Du kannst das wunderbar alles nachlesen: Start --> Ausführen --> CMD
Hier gibts du den Befehl ein, der dir unklar ist, gefolgt von einem " /?" Beispiel "for /?"
Bei den UNXTools gibst du ein : date --help oder wget --help
Und vielleicht kannst du nochwas zu Thema
benutzername und passwort sagen oder macht
man _das_ über Wget ???
Du meinst einen Download über eine .htaccess und .htpasswd geschützte Seite? Dann schau mal bei wget --help vorbei... hoffe es hilft dir.
Wenn man etwas sich selber aneignet, lernt man viel besser, als sich alles zusammenbasteln zu lassen, was nicht heissen soll, dass ich gerne und freiwillig helfe. Bin aber eher ein Vertreter von: Ich geb dir das Startkabel und Starthilfe, das Gaspedal musst du aber selber drücken
Lieben Gruß
Markus
Super Immer weiter so...
(Will ja was bei lernen obwohl ich sonst
eher mit multimedia zu tun habe
und deswegen wohl etwas mehr starthilfe
brauche
Es scheint mir sicherer es dennoch erst am
Folgetag downzuloaden,
weil die Batchdatei nach dem PC-Start
ausgeführt werden soll.
Und mein PC _nicht_ immer die Nacht
durchläuft.
ok das mit der Datums ausgabe des aktuellen
tabes funktioniert über das unxtools
brauche ja aber dann das vom Vortag.
was ist der unterschied zwischen %% und %
eher mit multimedia zu tun habe
und deswegen wohl etwas mehr starthilfe
brauche
Es scheint mir sicherer es dennoch erst am
Folgetag downzuloaden,
weil die Batchdatei nach dem PC-Start
ausgeführt werden soll.
Und mein PC _nicht_ immer die Nacht
durchläuft.
ok das mit der Datums ausgabe des aktuellen
tabes funktioniert über das unxtools
brauche ja aber dann das vom Vortag.
was ist der unterschied zwischen %% und %
damit der for befehl in batchdateien funktioniert wird aus dem einfach % ein %%. in der normalen kommandozeile genügt hier das einfache % zeichen. einfach mal testen.
%wort% <- ist denke ich eine Variable
richtig. Variablen setzt du mit set variable=wert
anzeige der variable mit echo %variable%
---------------------------------------------------------------------------------------------
also Easy-wGet ist ja der Hammer oO
also Easy-wGet ist ja der Hammer oO
Hier die Lösung deines Problems:
Erstelle eine "_test.vbs" Datei mit folgendem Inhalt:
wscript.echo date()-1
War also doch net so schwer von dem aktuellen Datum einen Tag abzuziehen... :-P
Dann erstelle eine Batchdatei "_test.bat" mit folgendem Inhalt und lege beide Dateien mit wget in ein Verzeichnis:
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set tag=%%i
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set monat=%%j
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set jahr=%%k
"%~dp0\wget.exe" "http://www.teste-seite.de/test/%tag%%monat%%jahr%.exe"
tokens:
bezieht sich auf die Ausgabe des Befehls
cscript //Nologo "%~dp0\_test.vbs"
Diese Ausgabe werte ich aus, indem ich durch den Trenner (delims) "." das Datum in Tag, Monat und Jahr aufteile. (tokens)
Im ersten Befehl nehme ich den ersten Teil: set Tag=%%i
in den weiteren Befehlen gehe ich von %%i aus und nehme den nächsten Teil %%j und dann %%k
Die Initialvariable ist in meinem Beispiel %%i (for /F "tokens=1,2,3 delims=." %%i ... ). Die nächsten sind ja nach dem Alphabet vordefiniert
Hoffe ich konnte dir nun helfen...
Gruß
Markus
Hi,
um die Jahreszahl zu manipulieren, musst Du die Variable %jahr% manipulieren.
Hierzu änderst du die Batch-Datei wie folgt:
%jahr:~2,2% bedeutet, dass Du nach dem 2. Zeichen die nächsten 2 Zeichen für deinen Gebrauch weiterverwenden willst.
Somit erhältst du für das heutige Datum 16.05.2005 zuerst das Datum 15.05.2007 aus dem VBS-Script. In den Variablen stehen dann folgende Werte:
%tag%=15
%monat%=05
%jahr%=2007
Wie du siehst, musst du hier nichts löschen, da das Datum ja schon vorher durch die For /F ... Befehle gesplittet worden und in die Variablen geschrieben worden ist.
Gruß
Markus
um die Jahreszahl zu manipulieren, musst Du die Variable %jahr% manipulieren.
Hierzu änderst du die Batch-Datei wie folgt:
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set tag=%%i
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set monat=%%j
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set jahr=%%k
"%~dp0\wget.exe" "http://www.teste-seite.de/test/%tag%%monat%%jahr:~2,2%.exe"
%jahr:~2,2% bedeutet, dass Du nach dem 2. Zeichen die nächsten 2 Zeichen für deinen Gebrauch weiterverwenden willst.
Somit erhältst du für das heutige Datum 16.05.2005 zuerst das Datum 15.05.2007 aus dem VBS-Script. In den Variablen stehen dann folgende Werte:
%tag%=15
%monat%=05
%jahr%=2007
Wie du siehst, musst du hier nichts löschen, da das Datum ja schon vorher durch die For /F ... Befehle gesplittet worden und in die Variablen geschrieben worden ist.
Gruß
Markus