zunaras
Goto Top

dateien zu ZIP hinzufügen anhand des Änderungsdatums

Hallo,

in einem Verzeichnis befinden sich mehrere Sicherungsdateien mit Sicherungsdatum versehen. Wo auch regelmäßig neue hinzugefügt werden.
Diese lasse ich in intervallen in ZIPs verschieben.

c:\programme\winzip\wzzip /m /u /yb /p d:\Sicherung\gezippt\Sicherung_%date%.zip d:\sicherung\*.*

Das geht auch alles ohne Probleme.

Manchmal bleiben vom Vortag aber noch ein paar Sicherungsdateien übrig, die dann in ein ZIP des aktuellen Datums verschoben wird.

Kann man das Änderungsdatum der Dateien auslesen und dem dazugehörigen gestrigen ZIP noch hinzufügen? Damit alles zusammen für einen Tag abgelegt ist.

Gruß
Zunaras

Content-ID: 111533

Url: https://administrator.de/forum/dateien-zu-zip-hinzufuegen-anhand-des-aenderungsdatums-111533.html

Ausgedruckt am: 05.04.2025 um 23:04 Uhr

60730
60730 16.03.2009 um 15:10:11 Uhr
Goto Top
Moin,

im "einfachsten" Fall einfach deine Zip Zeile benutzen und danach ein:
if exist laufwerk:\pfad\zuzippende_dateien.suffix goto zipzeile

Wäre wohl einfacher.


Also:
:zip
start /wait c:\programme\winzip\wzzip /m /u /yb /p d:\Sicherung\gezippt\Sicherung_%date%.zip d:\sicherung\*.*
if exist d:\sicherung\*.* goto zip
Gruß
Zunaras
Zunaras 16.03.2009 um 15:47:37 Uhr
Goto Top
Hallo und danke!

Klappt soweit ganz gut.
Zum Schluss kommt der/die/das Batch in eine Programmschleife.
wzzip wird ewig neu gestartet.

Gruß
60730
60730 16.03.2009 um 17:57:49 Uhr
Goto Top
hi,

"Schleife" - yupp das "kommt" davon face-wink

. und .. sind ja in jedem Ordner vorhanden und zählen logischerweise auch zu *.* *merde* && mea Culpa face-wink


:zip
start /wait c:\programme\winzip\wzzip /m /u /yb /p d:\Sicherung\gezippt\Sicherung_%date%.zip d:\sicherung\*.*
dir d:\sicherung\*.*|find "0 Datei(en) && goto end  
echo es wurden noch Dateien gefunden && goto zip
:end
..sollte dann besser funktionieren.

Gruß
edit
ich schau nachher nochmal vorbei - es geht auch "schöner"
/edit
bastla
bastla 16.03.2009 um 19:44:09 Uhr
Goto Top
@timobeil
Meinst Du etwas in der Art?
dir d:\sicherung /a-d >nul 2>&1 && goto :zip
Grüße
bastla
Zunaras
Zunaras 16.03.2009 um 19:59:40 Uhr
Goto Top
Hallo,

das funktioniert auch!

Nur noch die Sache mit dem Änderungsdatum der Datei.
Also: Kuck nach Änderungsdatum der zu sichernden Datei und verschieb sie in das vorhandene oder neue ZIP

Wäre schön, wenn die Dateien von gestern auch in das ZIp von gestern kommen. face-smile

Grüße
bastla
bastla 16.03.2009 um 20:08:18 Uhr
Goto Top
Hallo Zunaras!

Ungetestet etwa so:
pushd d:\sicherung
for /f "delims=" %%i in ('dir /b /a-d') do for /f %%d in ("%%~ti") do start /wait c:\programme\winzip\wzzip /m /u /yb /p d:\Sicherung\gezippt\Sicherung_%%d.zip "%%i"  
popd
Grüße
bastla
Zunaras
Zunaras 16.03.2009 um 22:03:23 Uhr
Goto Top
Hi Bastla!

Das ist genial!

Könnte man den Ablauf noch etwas verbessern?
Im Moment wird für jede einzelne Datei das wzzip gestartet. Das heißt, das die Zip, die durchaus die 500 MB schnell erreicht, für jede hinzukommende Datei komplett durchläuft. Pro Sicherungsintervall kommen schon ein paar Dateien zusammen.

Ist der Dateiname "Sicherung_20090316.zip" möglich? Lässt sich besser sortieren.

Grüße
bastla
bastla 16.03.2009 um 22:23:13 Uhr
Goto Top
Hallo Zunaras!

Weiterhin ungetestet:
@echo off & setlocal
set "Quelle=d:\sicherung"  
set "Ziel=d:\Sicherung\gezippt"  

pushd "%Quelle%"  
for /f "delims=" %%i in ('dir /b /a-d') do call :ProcessFile "%%i"  
for /d %%i in (*.*) do call :ProcessDir "%%i"  
popd
goto :eof

:ProcessFile
for /f "tokens=1-3 delims=. " %%a in ("%~t1") do set "Datum=%%c%%b%%a"  
if not exist "%Datum%" md "%Datum%"  
move %1 "%Datum%"  
goto :eof

:ProcessDir
pushd %1
set "Datum=%~nx1"  
:zip
start /wait c:\programme\winzip\wzzip /m /u /yb /p "%Ziel%\Sicherung_%Datum%.zip" *.*  
dir /a-d >nul 2>&1 && goto :zip
popd
REM rd %1
goto :eof
Zunächst werden alle Dateien nach Änderungsdatum in entsprechende Unterordner (Name = Änderungsdatum der Datei im Format JJJJMMTT) verteilt. In der zweiten Schleife werden dann alle Inhalte der Unterordner der entsprechenden Sicherungsdatei hinzugefügt (Vorgang wird wiederholt, bis sich keine Dateien mehr im Unterordner befinden). Um den Unterordner danach zu löschen, das "REM" am Beginn der Zeile 24 entfernen.

Grüße
bastla
Zunaras
Zunaras 16.03.2009 um 23:18:59 Uhr
Goto Top
Meine Güte! (überrascht sein von der Länge des Codes)

Die Aufteilung und das zippen funktioniert super.
Dadurch, das der Ordner "gezippt" sich auch im Verzeichnis Sicherung befindet, will er diesen auch nochmal zippen.
Ist aber nicht weiter schlimm. Ich habe diesen verschoben.

Ich werde es morgen noch mal auf dem Rechner ausprobieren wo es laufen soll.

Ich bedanke mich schon mal für die Geduld und Hilfe für mein Problem und gebe morgen nochmal eine kurze Rückinfo.

Viele Grüße und Gute Nacht
Zunaras
Zunaras
Zunaras 17.03.2009 um 08:38:36 Uhr
Goto Top
Klappt alles wunderbar!

Nochmals vielen Dank!

Grüße