System kopiert Dateien in einen Ordner trotz Schreibschutz
Hallo Ihr Lieben,
wahrscheinlich nur ein kleines Problem.
Ich habe einen Windows Server 2003 R2 SP1und dort habe ich einen Ordner (Archiv), in dem pro Monat ca 2000 Dateien drin landen.
Da diese Dateien (XML) ziemlich klein sind, habe ich mir gedacht, ich verschiebe alle Dateien, die Älter sind als 6 Tage in einen temporären Ordner (Archiv7z_temp) und komprimiere anschließend den kompletten Ordner und speichere das erstellte Archiv (mit Datum und Zeit im Namen) in einen ArchivOrdner (Archiv7z). Danach lösche ich die Dateien aus dem Quellordner (Archiv7z_temp).
Da ich dies nicht immer und immer wieder händisch machen will, habe ich mir eine Bacth geschrieben, die auch so funktioniert, wie wie oben beschreiben soll. Da ich dort mit Sprungmarken arbeite, wollte ich nun mal testen, wie das Script reagiert, wenn etwas schief läuft. Dazu habe ich mir gedacht, dass ich den Zielordner, also da wo die ZIP Datei landen soll einfach mal SCHREIBGESCHÜTZ mache. Also rechte Maustaste drauf und Read Only gechecked.
Jedoch schreibt die Batch fleißig weiter in den Ordner als gäbe es kein Morgen mehr?
Woran liegt das? Oder besser gefragt, wie kann ich überprüfen, ob meine Batch nicht löscht, wenn das Archivieren fehl geschlagen ist?
Anbei die Batch
Danke für Eure Hilfe
Gruß Kuli
wahrscheinlich nur ein kleines Problem.
Ich habe einen Windows Server 2003 R2 SP1und dort habe ich einen Ordner (Archiv), in dem pro Monat ca 2000 Dateien drin landen.
Da diese Dateien (XML) ziemlich klein sind, habe ich mir gedacht, ich verschiebe alle Dateien, die Älter sind als 6 Tage in einen temporären Ordner (Archiv7z_temp) und komprimiere anschließend den kompletten Ordner und speichere das erstellte Archiv (mit Datum und Zeit im Namen) in einen ArchivOrdner (Archiv7z). Danach lösche ich die Dateien aus dem Quellordner (Archiv7z_temp).
Da ich dies nicht immer und immer wieder händisch machen will, habe ich mir eine Bacth geschrieben, die auch so funktioniert, wie wie oben beschreiben soll. Da ich dort mit Sprungmarken arbeite, wollte ich nun mal testen, wie das Script reagiert, wenn etwas schief läuft. Dazu habe ich mir gedacht, dass ich den Zielordner, also da wo die ZIP Datei landen soll einfach mal SCHREIBGESCHÜTZ mache. Also rechte Maustaste drauf und Read Only gechecked.
Jedoch schreibt die Batch fleißig weiter in den Ordner als gäbe es kein Morgen mehr?
Woran liegt das? Oder besser gefragt, wie kann ich überprüfen, ob meine Batch nicht löscht, wenn das Archivieren fehl geschlagen ist?
Anbei die Batch
ECHO off
REM --- Verschieben der Dateien, die aelter sind, als 6 Tage inein Temporäres Verzeichnis namens Archive7z_temp
DelAge32.exe E:\Archive\*.* 6 /move E:\Archive7z_temp
PAUSE
REM --- Pruefen, ob Erfolgreich ---
IF errorlevel 0 GOTO :KOMPRIMIERUNG
REM --- Komprimierung START ---
:KOMPRIMIERUNG
7za u -tzip E:\Archive7z\%date:~10,4%%date:~7,2%%date:~4,2%-%time:~0,2%%time:~3,2%%time:~6,2% E:\Archive7z_temp
REM --- Pruefen, ob Erfolgreich ---
IF errorlevel 0 GOTO :LOESCHEN
REM -- Loeschen START ---
:LOESCHEN
del E:\Archive7Z_temp /s /F /Q
Danke für Eure Hilfe
Gruß Kuli
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143761
Url: https://administrator.de/contentid/143761
Ausgedruckt am: 24.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo kugelschreiber!
Unabhängig vom Phänomen "Schreiben in einen schreibgeschützten Ordner" schert sich Dein Batch überhaupt nicht um das Ergebnis der Komprimierung ...
Die Abfrage
alleine würde schon immer zum Label ":LOESCHEN" springen, da diese Schreibweise bedeutet: Wenn der Errorlevel 0 oder größer als 0 ist, springe ...
Darüber hinaus würde auch ohne den Sprung als nächste auszuführende Zeile der Löschbefehl in Zeile 26 erreicht.
Versuch es daher besser so:
Falls Du dennoch mit einem "
Grüße
bastla
P.S.: Für die Zeile 11 gilt natürlich die selbe Überlegung ...
Unabhängig vom Phänomen "Schreiben in einen schreibgeschützten Ordner" schert sich Dein Batch überhaupt nicht um das Ergebnis der Komprimierung ...
Die Abfrage
IF errorlevel 0 GOTO :LOESCHEN
Darüber hinaus würde auch ohne den Sprung als nächste auszuführende Zeile der Löschbefehl in Zeile 26 erreicht.
Versuch es daher besser so:
7za u -tzip E:\Archive7z\%date:~10,4%%date:~7,2%%date:~4,2%-%time:~0,2%%time:~3,2%%time:~6,2% E:\Archive7z_temp && del E:\Archive7Z_temp /s /F /Q
if
" arbeiten wolltest, dannif not errorlevel 1 goto :LOESCHEN
echo Fehler beim Komprimieren!
goto :eof
:LOESCHEN
bastla
P.S.: Für die Zeile 11 gilt natürlich die selbe Überlegung ...