Zum Inhalt wechseln


Foto

Backup Batch Script


  • Bitte melde dich an um zu Antworten
4 Antworten in diesem Thema

#1 ThaPate

ThaPate

    Newbie

  • 45 Beiträge

 

Geschrieben 22. Dezember 2005 - 10:48

Hallo zusammen!

Habe folgendes Problem bzw. Frage:

Ich soll ein Backup Batchscript erstellen das folgende Aufgaben hat:

Es soll ein Verzeichnis mit mehreren Dateien und Unterordner von einem auf den andreren Rechner kopiert werden. Dabei soll alles kopiert werden!
Das Backup soll jeweils Dienstags und Donnerstags ausgeführt werden. Das starten des Scriptes kann über den Taskmanager erfolgen!
Gibt es eine möglichkeit die Zielordner mit Datum zu versehen und das nur zwei Backupordner vorhanden sein sollen und das beim dritten Backup der älteste Ordner gelöscht oder überschrieben wird??? Kann das alles in einen Batchscript unterkommen???

Ich wäre über eure Hilfe sehr Dankbar!!!
MfG
ThaPate

#2 catal82

catal82

    Board Veteran

  • 765 Beiträge

 

Geschrieben 22. Dezember 2005 - 11:26

Wir haben bei mehreren Kunden so ein Konzept im Einsatz, bin aber grad nicht in er Firma um das mal hier her zu kopieren. Abes es wird alles mit xcopy gemacht und mehreren Task im Taskplaner.

#3 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 22. Dezember 2005 - 11:38

Hi,
Zum kopieren nimmst du am besten robocopy (xcopy fällt bei grösseren Dateimengen auf die Nase)
Zum löschen alter Dateien kannst du forfiles benützen
Forfiles -p R:\MyFiles -s -m *.* -d -365 -c "Cmd /C Echo 0x22@Path\@File0x22"

beide tools sind im Reskit

cu
blub

#4 brasil

brasil

    Member

  • 180 Beiträge

 

Geschrieben 22. Dezember 2005 - 14:36

Hallo ThaPate

kopier dir das da in eine Textdatei und bennene sie in irgendwas.bat um:

@echo off
xcopy c:\batch\*.* d:\batch\safe\ /e/s/y/d
FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d
FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j
rename d:\batch\safe "%dat%%zeit%.Safe"
FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B D:\Batch\*safe') DO (rd D:\Batch\"%%c" /s/q)
exit

erklärungen in ():
xcopy c:\batch\*.* (Start) d:\batch\safe\ (Ziel) /e/s/y/d (Parameter)
(kopiert das Startverzeichnis zum Zielverzeichnis)

FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d
(kreiert eine Variable "dat" = Datum)

FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j
(kreiert eine Variable "zeit" = Uhrzeit)

rename d:\batch\safe "%dat%%zeit%.Safe"
(benennt das soeben kopierte Verzeichnis in "Datum Uhrzeit.Safe" um)

FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B D:\Batch\*safe') DO (rd D:\Batch\"%%c" /s/q)
(legt fest, dass nur die zwei neusten Verzeichnisse bleiben, und die älteren gelöscht werden. Details:
skip=2 = gibt an, dass die zwei neusten übersprungen werden
D:\Batch\*Safe' = gibt die zu prüfenden Verzeichnisse an
rd D:\Batch\"%%c" /s/q = das ist der Löschbefehl

Gruss Brasil
Warum versuchen Männerlippen, ausgerechnet dort zu nippen, wo doch sonst nur die ganz Kleinen, sich erquicken wenn sie weinen..., weil die Worte Wahrheit sind, in jedem Manne steckt ein Kind, und da Frauen Kinder lieben, wird kein Mann von dort vertrieben.

#5 ThaPate

ThaPate

    Newbie

  • 45 Beiträge

 

Geschrieben 23. Dezember 2005 - 09:35

Super!!!
Vielen Dank!!!

Werde mich jetzt mal ranmachen und ausprobieren!
Werde mich dann noch mal melden ob es geklappt hat!!!