Backup-Script inkl. Ordner mit Tagesdatum
Ich war schon lange auf der Suche nach einem Script für die Dosbox, welches Daten sichert und diese automatisch in einen Ordner mit dem Tagesdatum im Namen schreibt. Ziel war es, mehrere Versionen eines Backup vorhalten zu können.
Hier wird angenommen, dass sich die zu kopierenden Dateien auf Laufwerk Z: befinden und die Sicherung direkt auf Laufwerk H: geschrieben werden sollen.
Erzeugt wird automatisch ein Ordner mit dem Datum im Format: YYYY-MM-DD (also z.B: 2009-11-02)
Hier wird angenommen, dass sich die zu kopierenden Dateien auf Laufwerk Z: befinden und die Sicherung direkt auf Laufwerk H: geschrieben werden sollen.
Erzeugt wird automatisch ein Ordner mit dem Datum im Format: YYYY-MM-DD (also z.B: 2009-11-02)
: Setzen der Variablen
set Quellverzeichnis=z:\
set Zielverzeichnis=h:\%date:~-4,4%-%date:~-7,2%-%date:~-10,2%
cls
echo.
echo ---------------------------------------------------------
echo.
echo Die DATENSICHERUNG wird gestartet.
echo.
echo.
set Quellverzeichnis
echo.
set Zielverzeichnis
echo.
echo.
echo Bitte beenden Sie alle geöffneten Anwendungen!
echo.
echo ---------------------------------------------------------
pause
: Neues Zielverzeichnis (Datum) erstellen
md h:\%date:~-4,4%-%date:~-7,2%-%date:~-10,2%
: Kopieren der Quelldaten in das neue Verzeichnis
XCOPY z:\ h:\%date:~-4,4%-%date:~-7,2%-%date:~-10,2% /S /E /C /H /O /R /Y /D /V
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128475
Url: https://administrator.de/contentid/128475
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
12 Kommentare
Neuester Kommentar
Hi...
Hier ein Script zur bestimmung der Zeit etc.
Dies wurde hier schon sehr oft verwendet und ich denke, dass es das ist, nach dem Du suchst. Den anfolgenden Batch kannst Du dann bequem mit den Variabeln bestücken...
Gruss Globe
Hier ein Script zur bestimmung der Zeit etc.
Dies wurde hier schon sehr oft verwendet und ich denke, dass es das ist, nach dem Du suchst. Den anfolgenden Batch kannst Du dann bequem mit den Variabeln bestücken...
Gruss Globe
@echo OFF
set TmpFile="%temp%.\tmp.vbs"
echo> %TmpFile% n=Now
echo>>%TmpFile% With WScript
echo>>%TmpFile% .Echo "set year=" + CStr(Year(n))
echo>>%TmpFile% .Echo "set yr=" + Right(Year(n),2)
echo>>%TmpFile% .Echo "set month="+ Right(100+Month(n),2)
echo>>%TmpFile% .Echo "set day=" + Right(100+Day(n),2)
echo>>%TmpFile% .Echo "set hour=" + Right(100+Hour(n),2)
echo>>%TmpFile% .Echo "set min=" + Right(100+Minute(n),2)
echo>>%TmpFile% .Echo "set sec=" + Right(100+Second(n),2)
echo>>%TmpFile% .Echo "set dow=" + WeekDayName(Weekday(n),1)
echo>>%TmpFile% .Echo "set dow2=" + WeekDayName(Weekday(n))
echo>>%TmpFile% .Echo "set iso=" + CStr(1 + Int(n-2) mod 7)
echo>>%TmpFile% .Echo "set iso2=" + CStr(Weekday(n,2))
echo>>%TmpFile% End With
cscript //nologo "%temp%.\tmp.vbs" > "%temp%.\tmp.bat"
call "%temp%.\tmp.bat"
del "%temp%.\tmp.bat"
del %TmpFile%
set TmpFile=
set stamp=%year%-%month%-%day%_%hour%.%min%.%sec%
Moin Globetrotter,
schönes handliches Skriptchen.
Falls ich noch einen kosmetischen Vorschlag machen darf..?
Ich würde die nach der %stamp%-Ermittlung überflüssigen "session-globalen" Variablen %year%, %month% etc sicherheitshalber wegen möglicher Seiteneffekte im späteren Skriptverlauf entsorgen:
Wie gesagt, rein kosmetisch....
Grüße
Biber
[Edit] Angedeutete Debugzeile ":: Bei Bedarf zur Kontrolle: -- echo Stamp: %stamp%" ergänzt *g [/Edit]
schönes handliches Skriptchen.
Falls ich noch einen kosmetischen Vorschlag machen darf..?
Ich würde die nach der %stamp%-Ermittlung überflüssigen "session-globalen" Variablen %year%, %month% etc sicherheitshalber wegen möglicher Seiteneffekte im späteren Skriptverlauf entsorgen:
@echo OFF & setlocal
set TmpFile="%temp%.\tmp.vbs"
echo> %TmpFile% n=Now
echo>>%TmpFile% With WScript
echo>>%TmpFile% .Echo "set year=" + CStr(Year(n))
echo>>%TmpFile% .Echo "set yr=" + Right(Year(n),2)
echo>>%TmpFile% .Echo "set month="+ Right(100+Month(n),2)
echo>>%TmpFile% .Echo "set day=" + Right(100+Day(n),2)
echo>>%TmpFile% .Echo "set hour=" + Right(100+Hour(n),2)
echo>>%TmpFile% .Echo "set min=" + Right(100+Minute(n),2)
echo>>%TmpFile% .Echo "set sec=" + Right(100+Second(n),2)
echo>>%TmpFile% .Echo "set dow=" + WeekDayName(Weekday(n),1)
echo>>%TmpFile% .Echo "set dow2=" + WeekDayName(Weekday(n))
echo>>%TmpFile% .Echo "set iso=" + CStr(1 + Int(n-2) mod 7)
echo>>%TmpFile% .Echo "set iso2=" + CStr(Weekday(n,2))
echo>>%TmpFile% End With
cscript //nologo "%temp%.\tmp.vbs" >"%temp%\tmp.bat"
call "%temp%\tmp.bat"
:: hier tmp-bat noch nicht löschen
del %TmpFile%
set stamp=%year%-%month%-%day%_%hour%.%min%.%sec%
:: Bei Bedarf zur Kontrolle: -- echo Stamp: %stamp%
:: %stamp% ist ermittelt.... Zwischenvariablen wegbratzen
For /f "usebackq delims==" %%i in ("%temp%\tmp.bat") do %%i=
:: hier erst tmp-bat löschen
del "%temp%\tmp.bat"
Wie gesagt, rein kosmetisch....
Grüße
Biber
[Edit] Angedeutete Debugzeile ":: Bei Bedarf zur Kontrolle: -- echo Stamp: %stamp%" ergänzt *g [/Edit]
Hi Biber Du -> Klugsch€iss€rle
Servus
(OT)
Ihr dürft mich Korinther nennen, wenn Ihr mögt, aber fü mich war das eine Anleitung, die auch als Anleitung / Tipp durchgeht und keine Frage...
(/OT)
Wobei mir bei der "eigentlichen" Anleitung das "fehlende" @echo off in der ersten Zeile sehr gut gefällt
Die meisten schreiben ja Ihre Alpha Beta Scripte mit @echo off, damit man es später, wenn das Script denn vielleicht mal von alleine läuft - nicht vergisst nachzutragen
Denke, dass dieses Script ne Antwort auf die Frage wert ist... schaun mer mal...
Servus
(OT)
Ihr dürft mich Korinther nennen, wenn Ihr mögt, aber fü mich war das eine Anleitung, die auch als Anleitung / Tipp durchgeht und keine Frage...
(/OT)
Wobei mir bei der "eigentlichen" Anleitung das "fehlende" @echo off in der ersten Zeile sehr gut gefällt
Die meisten schreiben ja Ihre Alpha Beta Scripte mit @echo off, damit man es später, wenn das Script denn vielleicht mal von alleine läuft - nicht vergisst nachzutragen
Nix für Ungut!
Dito...Gruss Globe
zurück..
Wenn ich noch einen Tipp zum ursprünglichen Skript (ich bin kein Fan von VB) geben darf:
Definiere den Namen "yyyy-mm-dd" vorher in einer Variablen.
a) musst du die Substrings nur einmal zusammenfrickeln
b) sollte das Script zufällig über Mitternach laufen, ändert sich das Datum, und dein xcopy kopiert ins Leere -- ja, ok, ist unwahrscheinlich, aber nicht unmöglich.
Ach ja, und der Vollständigkeithalber auch noch etwas Code, um die Zeit als Variable zu nutzen:
Ausgabeformat ist hier "hh-mm-ss" inkl. führender Null bei einstelligen Stunden.
Hoffe, das hilft dem einen oder anderen.
Gruß, Farbauti.
[edit: code etwas beautyfied]
Definiere den Namen "yyyy-mm-dd" vorher in einer Variablen.
a) musst du die Substrings nur einmal zusammenfrickeln
b) sollte das Script zufällig über Mitternach laufen, ändert sich das Datum, und dein xcopy kopiert ins Leere -- ja, ok, ist unwahrscheinlich, aber nicht unmöglich.
Ach ja, und der Vollständigkeithalber auch noch etwas Code, um die Zeit als Variable zu nutzen:
if "%TIME:~0,1%" == " " (
set NOWTIME=0%TIME:~1,1%-%TIME:~3,2%-%TIME:~6,2%
) else (
set NOWTIME=%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
)
Hoffe, das hilft dem einen oder anderen.
Gruß, Farbauti.
[edit: code etwas beautyfied]
Das Ganze lässt sich gut mit folgendem Programm kombinieren:
Übersichtlich Backups nach KWs speichern v1.1
Übersichtlich Backups nach KWs speichern v1.1
Vielen Dank für das nette Backupscript. Zwei kleine Wünsche hätte ich noch:
1. Könntest du auch noch den Befehl zum packen der Datei mittels WinRar und dem anschließenden löschen des angelegten Backup-Quellordners einpflegen?
2. Könntest du evtl. noch die Funktion eines Logfiles einbauen, in der die Größe und Anzahl der kopierten Dateien aufgelistet ist?
Würde mich freuen wenn du meine Wünsche noch einbauen könntest!
Vielen Dank für deine Mühe!
LG, Kickinho
1. Könntest du auch noch den Befehl zum packen der Datei mittels WinRar und dem anschließenden löschen des angelegten Backup-Quellordners einpflegen?
2. Könntest du evtl. noch die Funktion eines Logfiles einbauen, in der die Größe und Anzahl der kopierten Dateien aufgelistet ist?
Würde mich freuen wenn du meine Wünsche noch einbauen könntest!
Vielen Dank für deine Mühe!
LG, Kickinho
Hi,
wenn ich mir das so alles durchlese, dann bin ich bei traybackup.
Hat so ziemlich alles was oben drin steht.
www.traybackup.de
Interessant wäre noch der eigentliche Kopiervorgang. Hier ist xcopy wohl nicht sehr flexibel.
Mit robocopy ist man fein raus (sofern man die Parameter richtig setzt)
Dazu kann aber das Tool YARCGUI zu Hilfe genommen werden.
Andreas
wenn ich mir das so alles durchlese, dann bin ich bei traybackup.
Hat so ziemlich alles was oben drin steht.
www.traybackup.de
Interessant wäre noch der eigentliche Kopiervorgang. Hier ist xcopy wohl nicht sehr flexibel.
Mit robocopy ist man fein raus (sofern man die Parameter richtig setzt)
Dazu kann aber das Tool YARCGUI zu Hilfe genommen werden.
Andreas
Moin andipc und priez,
Wenn ich mir aber nicht alles durchlese, sondern nur die ersten 3 Zeilen, dann komme ich zu der Erkenntnis:
--> Und das Ziel war nach meinem Eindruck nicht unbedingt, irgendein Rad neuer, besser oder runder zum 20000sten Mal neu zu erfinden.
Sondern zu zeigen, wie man/frau sich mit einem mittelkomplexen Programmierproblem schrittweise und strukturiert auseinandersetzen kann.
{ Damit will ich nichts gegen Cobian Backup/ TrayBackup oder YARCGUI sagen.... aber ist hier in diesem Thread eher OffTopic. }
Grüße
Biber
Zitat von @andipc:
wenn ich mir das so alles durchlese, dann bin ich bei traybackup.
Hat so ziemlich alles was oben drin steht.
wenn ich mir das so alles durchlese, dann bin ich bei traybackup.
Hat so ziemlich alles was oben drin steht.
Wenn ich mir aber nicht alles durchlese, sondern nur die ersten 3 Zeilen, dann komme ich zu der Erkenntnis:
- da steht "Anleitung" drüber und nicht "Frage"
- und kurz danach "Ich war schon lange auf der Suche nach einem Script fur..." und (sinngemäß) "weil es für mich nix Überzeugendes gab, habe ich mir selbst geholfen.."
--> Und das Ziel war nach meinem Eindruck nicht unbedingt, irgendein Rad neuer, besser oder runder zum 20000sten Mal neu zu erfinden.
Sondern zu zeigen, wie man/frau sich mit einem mittelkomplexen Programmierproblem schrittweise und strukturiert auseinandersetzen kann.
{ Damit will ich nichts gegen Cobian Backup/ TrayBackup oder YARCGUI sagen.... aber ist hier in diesem Thread eher OffTopic. }
Grüße
Biber