Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Anleitung Entwicklung Batch & Shell

Backup-Script inkl. Ordner mit Tagesdatum

Mitglied: hamspirit

hamspirit (Level 1) - Jetzt verbinden

02.11.2009, aktualisiert 18.10.2012, 28850 Aufrufe, 12 Kommentare, 8 Danke

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
Mitglied: Globetrotter
02.11.2009 um 20:31 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% 
Bitte warten ..
Mitglied: Biber
02.11.2009 um 20:57 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]
Bitte warten ..
Mitglied: Globetrotter
02.11.2009 um 21:19 Uhr
Hi Biber Du -> Klugsch€iss€rle
.. habe das Ding grade 1zu1 kopiert und hatte halt den Stamp noch drinne

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

Nix für Ungut!

Gruss Globe
Bitte warten ..
Mitglied: 60730
02.11.2009 um 23:24 Uhr
Zitat von Globetrotter:
Hi Biber Du -> Klugsch€iss€rle
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..
Bitte warten ..
Mitglied: Farbauti
03.11.2009 um 12:07 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]
Bitte warten ..
Mitglied: Globetrotter
03.11.2009 um 12:12 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
Bitte warten ..
Mitglied: marinux
06.11.2009, aktualisiert 18.10.2012
Das Ganze lässt sich gut mit folgendem Programm kombinieren:

Übersichtlich Backups nach KWs speichern v1.1
Bitte warten ..
Mitglied: priez
13.11.2009 um 02:58 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é
Bitte warten ..
Mitglied: Kickinho
27.11.2009 um 19:32 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
Bitte warten ..
Mitglied: andipc
01.12.2009 um 19:16 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
Bitte warten ..
Mitglied: Biber
01.12.2009 um 19:31 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
Bitte warten ..
Mitglied: priez
01.12.2009 um 20:41 Uhr
Hi Biber,

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

Grüße

René
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Robocopy Backup Script
Tipp von kunert0345Batch & Shell9 Kommentare

Backupscript zum Erstellen monatlicher Backups und zur täglichen Aktualisierung der monatlichen Backups:

Hyper-V
Einfaches Powershell Script zum Backup aller HyperV virtuellen Maschinen auf NAS Freigabe
Anleitung von rzlbrnftHyper-V

Die NAS die wir benutzen kann keine Computerkonten in die Schreibberechtigung für eine Freigabe aufnehmen. Da Export-VM immer mit ...

Windows Installation
Nach Hardwaretausch PC wieder starten (inkl. Physikalisch - Virtuell)
Anleitung von CloudyWindows Installation3 Kommentare

Wer kennt es nicht, das Mainboard ist defekt und mit dem neuen Mainboard startet der PC nicht. Oder Windows ...

Batch & Shell
Mit einem Klick ein Backup machen
Tipp von KennethBatch & Shell14 Kommentare

Hier ist der Code mit dem man ein Backup macht:

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...