Nickname
Passwort | vergessen?

330 anonyme User

4 angemeldete Mitglieder


maretz
siriusXT
maretzsiriusXTu0206084webtrajo
65556 Mitglieder freuen sich auf Dich!
Top-Aktivitäten
Sehen Sie hier, wer zu den aktivsten Mitgliedern der letzten Woche zählt:
Sponsored Links
In den Bereich Batch & Shell wechseln ..

Backup-Script inkl. Ordner mit Tagesdatum

Mitglied: hamspirit
Geschrieben von hamspirit (Level 1 - Frischling)
Erstellt am 02.11.2009, um 20:07:06 Uhr, Permanent-ID: 128475
Dieser Beitrag wurde bisher 6481 mal aufgerufen und gilt als gelöst.
8 von 8 Mitgliedern fanden diese Anleitung hilfreich.
Hilfreich+8 hilfreichDruckenBeobachten
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)

-----------------------------------------------------------------------------------------------------------------------------

01.
 
02.
: Setzen der Variablen 
03.
set Quellverzeichnis=z:\ 
04.
set Zielverzeichnis=h:\%date:~-4,4%-%date:~-7,2%-%date:~-10,2% 
05.
 
06.
cls 
07.
echo. 
08.
echo --------------------------------------------------------- 
09.
echo. 
10.
echo Die DATENSICHERUNG wird gestartet. 
11.
echo. 
12.
echo. 
13.
set Quellverzeichnis 
14.
echo. 
15.
set Zielverzeichnis 
16.
echo. 
17.
echo. 
18.
echo Bitte beenden Sie alle geöffneten Anwendungen! 
19.
echo. 
20.
echo --------------------------------------------------------- 
21.
pause 
22.
 
23.
 
24.
: Neues Zielverzeichnis (Datum) erstellen 
25.
md h:\%date:~-4,4%-%date:~-7,2%-%date:~-10,2% 
26.
 
27.
: Kopieren der Quelldaten in das neue Verzeichnis 
28.
XCOPY z:\ h:\%date:~-4,4%-%date:~-7,2%-%date:~-10,2% /S /E /C /H /O /R /Y /D /V
Melden Sie sich mit Ihrem Nicknamen an, um diesen Beitrag zu bewerten!
Kommentar schreibenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
Diskussionsverlauf (12 Kommentare) Thread-Ansicht
thread
Globetrotter
Kommentar Globetrotter schreibt am 02.11.2009, 20:31:51 Uhr
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

@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% 
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Biber
Kommentar Biber schreibt am 02.11.2009, 20:57:22 Uhr
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:

01.
@echo OFF & setlocal 
02.
 
03.
set TmpFile="%temp%.\tmp.vbs"  
04.
 
05.
echo> %TmpFile% n=Now  
06.
 
07.
echo>>%TmpFile% With WScript  
08.
echo>>%TmpFile% .Echo "set year=" + CStr(Year(n))  
09.
echo>>%TmpFile% .Echo "set yr="   + Right(Year(n),2)  
10.
echo>>%TmpFile% .Echo "set month="+ Right(100+Month(n),2)  
11.
echo>>%TmpFile% .Echo "set day="  + Right(100+Day(n),2)  
12.
echo>>%TmpFile% .Echo "set hour=" + Right(100+Hour(n),2)  
13.
echo>>%TmpFile% .Echo "set min="  + Right(100+Minute(n),2)  
14.
echo>>%TmpFile% .Echo "set sec="  + Right(100+Second(n),2)  
15.
echo>>%TmpFile% .Echo "set dow="  + WeekDayName(Weekday(n),1)  
16.
echo>>%TmpFile% .Echo "set dow2=" + WeekDayName(Weekday(n))  
17.
echo>>%TmpFile% .Echo "set iso="  + CStr(1 + Int(n-2) mod 7)  
18.
echo>>%TmpFile% .Echo "set iso2=" + CStr(Weekday(n,2))  
19.
echo>>%TmpFile% End With  
20.
cscript //nologo "%temp%.\tmp.vbs" >"%temp%\tmp.bat"  
21.
call "%temp%\tmp.bat"  
22.
:: hier tmp-bat noch nicht löschen 
23.
del  %TmpFile%  
24.
 
25.
set stamp=%year%-%month%-%day%_%hour%.%min%.%sec%  
26.
:: Bei Bedarf zur Kontrolle: -- echo Stamp: %stamp% 
27.
 
28.
:: %stamp% ist ermittelt.... Zwischenvariablen wegbratzen 
29.
For /f "usebackq delims==" %%i in ("%temp%\tmp.bat") do %%i= 
30.
 
31.
:: hier erst tmp-bat  löschen 
32.
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]
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Globetrotter
Kommentar Globetrotter schreibt am 02.11.2009, 21:19:24 Uhr
Hi Biber Du -> Klugsch€iss€rle face-smile
.. habe das Ding grade 1zu1 kopiert und hatte halt den Stamp noch drinne face-smile

Denke, dass dieses Script ne Antwort auf die Frage wert ist... schaun mer mal...

Nix für Ungut!

Gruss Globe
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
TimoBeil
Kommentar TimoBeil schreibt am 02.11.2009, 23:24:31 Uhr
Zitat von Globetrotter:
Hi Biber Du -> Klugsch€iss€rle face-wink
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 face-wink

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 face-wink

Nix für Ungut!
Dito...
Gruss Globe
zurück..
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Farbauti
Kommentar Farbauti schreibt am 03.11.2009, 12:07:06 Uhr
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:
01.
if "%TIME:~0,1%" == " " ( 
02.
	set NOWTIME=0%TIME:~1,1%-%TIME:~3,2%-%TIME:~6,2% 
03.
) else ( 
04.
	set NOWTIME=%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% 
05.
)
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]
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Globetrotter
Kommentar Globetrotter schreibt am 03.11.2009, 12:12:18 Uhr
Hi Farbauti...
Deine Idee ist auf jedenfall für das ein oder andere Ding super...
Werde dieses Teil auf jedenfall in meine "Codeschnipsel" aufnehmen.

Danke,

Gruss Globe
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
marinux
Kommentar marinux schreibt am 06.11.2009, 12:44:38 Uhr
Das Ganze lässt sich gut mit folgendem Programm kombinieren:

Übersichtlich Backups nach KWs speichern v1.1
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
priez
Kommentar priez schreibt am 13.11.2009, 02:58:00 Uhr
Hi,

Cobian Backup (Freeware) macht das auch einfacher? Oder habe ich hier einen wesentlichen Aspekt (ausser Skripte können in GPOs verwendet werden) übersehen? Ansonsten finde ich das Skript nett.

Grüße

René
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Kickinho
Kommentar Kickinho schreibt am 27.11.2009, 19:32:22 Uhr
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
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
andipc
Kommentar andipc schreibt am 01.12.2009, 19:16:52 Uhr
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
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
Biber
Kommentar Biber schreibt am 01.12.2009, 19:31:05 Uhr
Moin andipc und priez,

Zitat von priez:
Cobian Backup (Freeware) macht das auch einfacher?

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 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
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
priez
Kommentar priez schreibt am 01.12.2009, 20:41:34 Uhr
Hi Biber,

Sorry face-smile Habe zur Info deine Datestrings aber anderweitig benötigt und damit mein Dank an dich!

Grüße

René
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
Aktuelle Anleitungen
Mögliche Antworten oder verwandte Beiträge
Anleitungen zum Thema
Links zum Thema