Wochentag Datei weekday file script
Wie kann ich eine Sicherung nach Wochentag sortiert ablegen?
Diese Frage haben wir uns auch gestellt. Mit shell-Befehlen ist es uns nur extrem umständlich gelungen. Deshalb haben wir uns dazu entschlossen hierfür ein kleines Programm zu entwickeln.
Funktionsweise:
Mittels DayOfWeekFromFile.exe
Beispiel: Eine Windows ServerImagesicherung erstellt jeden Tag ein Image in das Verzeichnis
s:\Sicherung\Serversicherung_aktiv\….
Dieses soll dann dem Wochentag entsprechend umgenannt werden.
s:\Sicherung\Serversicherung_aktiv\ -> s:\Sicherung\Serversicherung_
DayOfWeekFromFile.exe s:\Sicherung\Serversicherung_aktiv\WindowsImageBackup\Server01\Catalog
if errorlevel 0 if not errorlevel 1 set DOW=0
…
if errorlevel 6 if not errorlevel 7 set DOW=6
if errorlevel 8 goto skip nichts zu tun da keine Datei vorhanden
In dem weiteren Scriptverlauf wird dann s:\Sicherung\Serversicherung_aktiv nach z.B. s:\Sicherung\Serversicherung_1 (1 für Montag) umbenannt
Im Skript SicherungsverzeichnisWaehlen.cmd müssen 8 Variablen gesetzt werden damit das Ganze funktioniert
diese sind
set NameDerFehlerausgabedatei=C:\Users\Administrator\Desktop\Script-Fehler.txt
set QuellundZielVerzeichnisRoot=s:\Sicherung
set QuellVerzeichnisOrdner= Serversicherung_aktiv
set ZielVerzeichnisOrdner=Serversicherung_
set ZielVerzeichnisBasisname=%ZielVerzeichnisRoot%\%ZielVerzeichnisOrdner%
set GetWeekDayFromThisFile=s:\Sicherung\Serversicherung_aktiv\WindowsImageBackup\Server01\Catalog
set QuellVerzeichnisBasisname=%QuellundZielVerzeichnisRoot%\%QuellVerzeichnisOrdner%
set PathToScript=D:\Datapower\Scripts
Dann wird der Rückgabewert ausgewertet und in ein dementsprechendes Zielverzeichnis umbenannt
rem Wenn %FileToSort% nicht existiert, gibt es nichts zu tun
if not exist %FileToSort% goto skip
rem %FileToSort% existiert. Wir können also versuchen diese in die richtige Schublade zu kopieren
rem Wochentag der zuletzt erstellten Sicherung ermitteln und Variable DOW entsprechend setzen
%PathToScript%\DayOfWeekFromFile.exe %FileToSort%
if errorlevel 0 if not errorlevel 1 set DOW=0
echo DOW=%DOW%
if errorlevel 1 if not errorlevel 2 set DOW=1
echo DOW=%DOW%
if errorlevel 2 if not errorlevel 3 set DOW=2
echo DOW=%DOW%
if errorlevel 3 if not errorlevel 4 set DOW=3
echo DOW=%DOW%
if errorlevel 4 if not errorlevel 5 set DOW=4
echo DOW=%DOW%
if errorlevel 5 if not errorlevel 6 set DOW=5
echo DOW=%DOW%
if errorlevel 6 if not errorlevel 7 set DOW=6
echo DOW=%DOW%
if errorlevel 8 goto skip
Im weiteren Verlauf folgt nun das Umbenennen in das entsprechende Verzeichnis.
Im Fehlerfall wird eine Fehler – Datei %NameDerFehlerausgabedatei% gesetzt.
In diesem Beispiel wird im Fehlerfall die Datei C:\Users\Administrator\Desktop\Script-Fehler.txt erzeugt.