elaxer
Goto Top

Entpacken und umbennen einer Zip-Datei (täglich, Name immer anders) ?

Habe nur den Tipp bekommen "Das löst mit 'ner Batch-Datei", bin diesbezüglich aber völlig unwissend.

Geht darum das ich jede Nacht um 2 Uhr eine .zip-Datei per ftp auf einen Server bekomme, die .zip-Datei UND die darin enthaltene Datei haben allerdings jedesmal einen anderen Namen.

Jetzt möchte ich erreichen das "eine Batch-Datei" mir die Datei im Ordner X in den Ordner Y entpackt UND gleichzeitig umbenennt (Dateiname NACH Umbenennung sollte dabei IMMER gleich sein, d.h. "Datenbank_aktuell.bak".

Hier nochmal der Ablauf den ich mir vorstelle:

- gegen 2 Uhr wird die Datei per FTP auf Laufwerk F:/FTP/ gelegt "Daten_20100114.zip"(erledigt)
- die Datei "Daten_20100114.zip" (deren Dateiname sich ja täglich ändert) soll jetzt nach K:/Sicherung/ entpackt und gleichzeitig in "Daten_aktuell.bak" umbenannt werden.
- die Datei "Daten_2010114.zip" wird mittels Tool "SyncBank" entfernt/verschoben, damit der Ordner F:/FTP/ wieder leer ist.
- ein SQL Skript über de SQL-Server Agent sorgt dafür das die "Daten_aktuell.bak" auf meinem SQL Server wiederhergestellt wird

Ich möchte quasi morgens aufstehen und direkt auf die aktuellste Datenbank zugreifen können face-smile

Könnt ihr mir helfen ?

Vielen Dank für jede Hilfe. Ich hoffe auch ich kann mich hier bald helfend beteiligen.
Kommentar vom Moderator Biber am 14.01.2010 um 16:31:36 Uhr
Entpacken und umbennen einer Zip-Datei...
#rgc = 644

Content-Key: 133490

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

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: TsukiSan
TsukiSan 14.01.2010 um 16:18:14 Uhr
Goto Top
also erst einmal ist
Habe nur den Tipp bekommen "Das löst mit 'ner Batch-Datei", bin diesbezüglich aber völlig unwissend.
keine ausreichende Begrüßung!

Bitte mal die Diskussionsrichtlinien - die Regeln zu unseren Inhalten durchlesen.

Wir helfen ja wirklich gern und bestens, aber....

Gruss
Tsuki
Mitglied: 60730
60730 14.01.2010 um 16:24:05 Uhr
Goto Top
Servus,

  • für ein kleines Hallo / Servus machen wir fast alles face-wink
- die Datei "Daten_20100114.zip" (deren Dateiname sich ja täglich ändert)
bedeutet doch nicht etwa jahrmonattag.zip - das wäre ja zu einfach.

:parameter
set today=%date:~-4%%date:~-7,2%%date:~-10,2%
if exist F:/FTP/Daten_%today%.zip echo je nach zipprogramm mit diversen parametern nach K:/Sicherung/ entpacken
if errorlevel 0 move F:/FTP/Daten_%today%.zip Daten_aktuell.bak

wobei - wenn das die einzigste zip datei in dem Ordner ist - der ganze kram noch einfacher geht.

Gruß

@tsuki:
Zur Feier des Tages warte ich mal - ob das noch nachkommt. Aber im Prinzip muß das eine Ausnahme sein...
Mitglied: elaxer
elaxer 14.01.2010 um 16:27:39 Uhr
Goto Top
Entschuldigt, natürlich nachträglich:

HALLO AN ALLE!! Hoffe ich darf mich hier wohlfühlen!
Mitglied: mayho33
mayho33 14.01.2010, aktualisiert am 18.10.2012 um 18:40:51 Uhr
Goto Top
Hi Elaxer!

face-smile das hab ich mich vor Kurzen auch gefragt, weil siehe: Regini.exe und ModifyProfile.exe kombinieren

Aber keine Angst. Du bekommst hier zu 99.99999% kompetente und nette Menschen zu sehen und genau so viele wertvolle Tipps.

@tzuki: Sorry, dass du da jetzt auch was abkriegst. Du hast natürlich vollkommen recht. Die Nettiquette ist MUSS!!! face-smile

@timobeil: Will jetzt nix aufwärmen -Du wirs natürlich fragen: "Warum tust dus dann?"- aber ich versteh dich nicht. Wenn dir alle so auf den S.... gehen mit ihren dummen Fragen, meine eingeschlossen, warum eröffnest du dann nicht auf einem Homerechner ohne Internetanschluss dein eigenes Forum?

Dein BATCH ist jedenfalls genial! face-smile

Grüße

Mayho
Mitglied: arndttob
arndttob 14.01.2010 um 20:06:57 Uhr
Goto Top
OT: Er muss so sein, er ist Dr. House ^^
Mitglied: mayho33
mayho33 16.01.2010 um 22:37:21 Uhr
Goto Top
Sollte er vielleicht vorher dazu sagen. Kommt irgendwie nicht so gut. Mir wird da echt übel. Hab da so meine Erfahrungen.
Mitglied: elaxer
elaxer 18.01.2010 um 12:41:11 Uhr
Goto Top
Erstmal danke für eure rege Beteiligung und nochmal sorry für mein tölpelhaftes Auftreten face-smile

@tim: Hab dir ne Nachricht geschickt

Gruß,

Stefan
Mitglied: 60730
60730 18.01.2010 um 14:03:01 Uhr
Goto Top
Salü,

das untenstehende script sollte selbsterklärend sein.

:parameter
set today=%date:~-4%%date:~-7,2%%date:~-10,2%
:Datei(en) vorhanden
if not exist %programfiles%\7-Zip\7z.exe echo 7zip ist nicht in %programfiles%\7-Zip\ - Ordner anpassen-7zip installieren && pause
if exist F:/FTP/Daten_%today%.zip programfiles%\7-Zip\7z.exe  F:/FTP/Daten_%today%.zip -aoa -o K:\Sicherung
if errorlevel 0 move F:/FTP/Daten_%today%.zip Daten_aktuell.bak
if exist F:/FTP/Daten_%today%.zip echo bei enpacken ist ein Fehler aufgetreten && pause

@mayho:
So ist das halt mit den Erfahrungen face-wink davon hat jeder von uns schon ein paar gesammelt.
Und ich sag hier eher niemals was - manchmal schreib ich face-wink

Gruß
Mitglied: elaxer
elaxer 20.01.2010 um 14:17:07 Uhr
Goto Top
Eine kleine Frage noch, dann biste mich los.

Das Format der Datei ist geringfügig Anders, wars mir doch Schwierigkeiten bereitet bei deiner today Variablen.

Die zu mir gesandte Datei heisst jeweils "Daten_backup_2010-01-19" also mit "-" im Datum, könntest du mir also Zeile 2 nochmal "updaten" ? face-smile

Danach sollte es sicher funktioneren.

Hier nochmal der aktuell Stand:


:parameter
set today=%date:~-4%%date:~-7,2%%date:~-10,2% <--- hier müsste geändert werden
:Datei(en) vorhanden
if not exist %programfiles%\7-Zip\7z.exe echo 7zip ist nicht in %programfiles%\7-Zip\ - Ordner anpassen-7zip installieren && pause
if exist X:/Import/Daten_backup_%today%.zip programfiles%\7-Zip\7z.exe X:/Import/ICC_backup_%today%.zip -aoa -o X:/Import/Aktuell/
if errorlevel 0 move X:/Import/Daten_backup_%today%.zip Daten_aktuell.bak
if exist X:/Import/Daten_backup_%today%.zip echo bei enpacken ist ein Fehler aufgetreten && pause

Ich nehme das jetzt so war, dass "er" prüft ob 7zip da ist, die Datei, wenn existent, entpackt (in sep. Ordner), ABER
die folgenden Zeilen verstehe ich nicht:


if exist X:/Import/Daten_backup_%today%.zip programfiles%\7-Zip\7z.exe X:/Import/ICC_backup_%today%.zip -aoa -o X:/Import/Aktuell/ <- hier wird entpackt, oder ?
if errorlevel 0 move X:/Import/Daten_backup_%today%.zip Daten_aktuell.bak <- wird hier nochmal entpackt ?
if exist X:/Import/Daten_backup_%today%.zip echo bei enpacken ist ein Fehler aufgetreten && pause <- warum Fehler ?

Wenn das im Rahmen dessen nicht passiert, könnte man die "Daten_backup_%today%.zip" nicht auch ins Unterverzeichnis X:/Import/Archiv/ kopieren NACH dem entpacken ?

Danke nochmal.
Mitglied: 60730
60730 20.01.2010 um 14:30:05 Uhr
Goto Top
Zitat von @elaxer:
Die zu mir gesandte Datei heisst jeweils "Daten_backup_2010-01-19" also mit "-" im Datum, könntest du mir also Zeile 2 nochmal "updaten" ? face-smile
Danach sollte es sicher funktioneren.

machs doch so:
:parameter 
set zip=Daten_backup_%date:~-4%-%date:~-7,2%-%date:~-10,2%
..und dann nicht mehr die variable today, sondern diese im Beispiel zip genannte.

if exist X:/Import/Daten_backup_%today%.zip programfiles%\7-Zip\7z.exe X:/Import/ICC_backup_%today%.zip -aoa -o X:/Import/Aktuell/ <- hier wird entpackt, oder ?
wenn X:/Import/Daten_backup_%today%.zip vorhanden starte das 7zip und entpacke - oder ja
if exist X:/Import/Daten_backup_%today%.zip echo bei enpacken ist ein Fehler aufgetreten && pause <- warum Fehler ?
  • upps da fehlt ja wirklich ein t - meinte entpacken.
Spass beiseite bei Dateien, die mir einer schickt und die per ftp kommen - kann alles wunderbar sein, muß es aber nicht.
Ein script ohne Fehlerabfrage ist zwar möglich, aber bei manchen "silent" Geschichten einfach nicht mein Ding.
bei mir in der Firma würde ich z.b erstmal nachsehen, ob derjenige - der mir das File per ftp schickt noch mit dem FTP Server verbunden ist - bevor ich lustig die evtl. halbfertige Datei entpacke.
Und klar - das echo war ja nur ein Beispiel - wie man eine Fehlerabfrage baut.

Wenn das im Rahmen dessen nicht passiert, könnte man die "Daten_backup_%today%.zip" nicht auch ins Unterverzeichnis X:/Import/Archiv/ kopieren NACH dem entpacken

  • Gegenfrage:

Wie müsste jetzt die Zeile:
if errorlevel 0 move F:/FTP/Daten_%today%.zip Daten_aktuell.bak
geändert werden, damit das so läuft?

  • learning by doing und du sollst hier Hilfe bekommen - das was bei dir läuft - auch zu verstehen face-wink
Und deshalb auch nur der Tipp - mit der neuen Variable und kein komplettes Script - das kriegst du alleine hin face-wink

Gruß