Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batchdatei erstellen (autom. Download in best. Ordner)

Frage Entwicklung Batch & Shell

Mitglied: Neuling79

Neuling79 (Level 1) - Jetzt verbinden

13.05.2007, aktualisiert 16.05.2007, 7484 Aufrufe, 9 Kommentare

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.
Mitglied: problemsolver
13.05.2007 um 15:58 Uhr
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:
01.
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)
01.
for /F %%i in ('%~dp0\date.exe +%%d%%m%%y') do set test=%%i 
02.
wget "http:// www.teste-seite.de/test/%test%.exe"
Wenn du dann noch die Datei ausführen möchtest ergänzt du dann noch:
01.
"%~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
Bitte warten ..
Mitglied: onegasee59
13.05.2007 um 20:02 Uhr
[edit]nur in Ergänzung zu "problemsolver"[/edit]
http://toolsandmore.de/Central/Produkte/Software/Internet/Download/Easy ...
Bitte warten ..
Mitglied: Neuling79
14.05.2007 um 06:45 Uhr
So weit so gut ...

müssen die beiden Programme Wget und das UNXUtils dann die ganze Zeit laufen ?
Und ist mein Problem nicht über eine einzige Batchdatei lösbar.

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
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 [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.

Und vielleicht kannst du nochwas zu Thema benutzername und passwort sagen oder macht man _das_ über Wget ???
Bitte warten ..
Mitglied: problemsolver
14.05.2007 um 15:46 Uhr
So weit so gut ...

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.

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

Hier wird es wohl komplizierter bei einer Batch-Datei. Datumsberechnungen sind so oder so eine Sache für sich. Allgemeine Berechnungen z.B.
01.
set /A ergebnis=5+2 
02.
echo %ergebnis% 
03.
:: 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.

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
Bitte warten ..
Mitglied: Neuling79
14.05.2007 um 18:51 Uhr
Vielen danke für deine Starthilfe-Tips
@problemsolver


Genau diese Art Hilfe ist es die ich suche.
(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 %

%wort% <- ist denke ich eine Variable
also Easy-wGet ist ja der Hammer oO
Bitte warten ..
Mitglied: problemsolver
14.05.2007 um 21:40 Uhr
Vielen danke für deine Starthilfe-Tips
@problemsolver


Genau diese Art Hilfe ist es die ich suche.

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 %

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


Hier die Lösung deines Problems:
Erstelle eine "_test.vbs" Datei mit folgendem Inhalt:
01.
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:
01.
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set tag=%%i 
02.
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set monat=%%j 
03.
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set jahr=%%k 
04.
"%~dp0\wget.exe" "http://www.teste-seite.de/test/%tag%%monat%%jahr%.exe"
tokens:
bezieht sich auf die Ausgabe des Befehls
01.
cscript //Nologo "%~dp0\_test.vbs"
Führe die _test.vbs einfach mal aus und du siehst was ich meine.
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
Bitte warten ..
Mitglied: Neuling79
15.05.2007 um 06:45 Uhr
Ich bedanke mich vielmals und werde das heute mal alles restlos ausprobieren.

Kann nur sagen Danke Danke Danke
Und wenn du mal in der nähe bist gebe ich dir ein Bier aus
habe das schon mal schnell getestet er gibt mir das datum für den gestrigen also den Vortag aus.
14.05.2007 zwar noch icht in der richtigen schreibweiße aber das bekomme ich schon hin.
Ok und mit Call ruf ich dann zu guter letzt meine batch zum aktualisieren auf
Bitte warten ..
Mitglied: Neuling79
15.05.2007 um 22:00 Uhr
Muss doch sicher das Datum welches ich in der folgenden form bekomme
tt.mm.jjjj (14.05.2007)

in eine Variable speichern und dann
das 3,6,7,8 Zeichen (token) löschen
damit das dann folgendermaßen aussieht:
ttmmjj

kann mir einer helfen weiß nicht wie das jetzt geht .

hole mir jetzt wie gesagt das date über die UnxTools (date.exe)
Bitte warten ..
Mitglied: problemsolver
16.05.2007 um 09:26 Uhr
Hi,

um die Jahreszahl zu manipulieren, musst Du die Variable %jahr% manipulieren.
Hierzu änderst du die Batch-Datei wie folgt:

01.
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set tag=%%i 
02.
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set monat=%%j 
03.
for /F "tokens=1,2,3 delims=." %%i in ('cscript //Nologo %~dp0\_test.vbs') do set jahr=%%k 
04.
"%~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
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst Ordner anhand von Dateinamen erstellen und Dateien in Ordner kopieren (3)

Frage von getmoving zum Thema Batch & Shell ...

Batch & Shell
Ordner erstellen ll Datei hinein kopieren (1)

Frage von heyalice zum Thema Batch & Shell ...

Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...