Datensicherung mit VBS-Skript

itzChriz

Lieutenant
Registriert
Dez. 2011
Beiträge
682
Moin,
vor einem Programm-Update auf einem Server soll eine Sicherung der betroffenen Ordner erstellt werden.
Es soll auch noch überprüft werden ob wirklich alles und vollständig gesichert wurde.
Ich hoffe ihr könnt mir helfen :)

VBS Skript:

Code:
Dim oShell 
Set oShell = WScript.CreateObject("WScript.Shell") 
oShell.Run "C:Users\MeinName\Desktop\Sicherungsskript.bat"

compare="\\Server\e$\so\Programm\Ordner1"+ 
"\\Server\e$\so\Programm\Ordner2"+ 
"\\Server\e$\so\Programm\Ordner3"+ 
"\\Server\e$\so\Programm\Ordner4"+
"\\Server\e$\so\Programm\Ordner5"+
"\\Server\e$\so\Programm\Ordner6"
search="\\Server\e$\so\Programm\Sicherung_%date%"
pos=InStr(compare,search)
if pos > 0 then wscript.echo "Dateien erfolgreich gesichert!"
if pos = 0 then wscript.echo "Dateien unvollständig gesichert!"

Batch:

Code:
MKDIR \\Server\e$\so\Programm\sicherung_%date%

robocopy /e \\Server\e$\so\Programm\Ordner\ \\Server\e$\so\Programm\sicherung_%date%\Ordner
robocopy /e \\Server\e$\so\Programm\Ordner\ \\Server\e$\so\Programm\sicherung_%date%\Ordner
robocopy /e \\Server\e$\so\Programm\Ordner\ \\Server\e$\so\Programm\sicherung_%date%\Ordner
robocopy /e \\Server\e$\so\Programm\Ordner\ \\Server\e$\so\Programm\sicherung_%date%\Ordner
robocopy /e \\Server\e$\so\Programm\Ordner\ \\Server\e$\so\Programm\sicherung_%date%\Ordner
robocopy /e \\Server\e$\so\Programm\Ordner\
\\Server\e$\so\Programm\sicherung_%date%\Ordner
 
Zuletzt bearbeitet:
Inwiefern brauchst Du Hilfe? Funktioniert etwas nicht, brauchst Du Feedback?

Meiner Meinung nach reichen die Robocopy Befehle, die Du noch durch ein Logfile ergänzen solltest: /LOG+%Dateiname%

Robocopy vergleicht sowieso Quelle und Ziel.
 
als Tipp:
Statt "%date%" würde ich "%date:~6,4%-%date:~3,2%-%date:~0,2%" verwenden. Dann hast Du statt 26.11.2013 das wesentlich schönere 2013-11-26.

Ansonsten solltest Du rein mit Robocopy alles machen können. (wie Frightener schon erwähnte)
 
Es funktioniert so leider nicht. Kompilierungsfehler.
Ich denke mal das er den Vergleich nicht macht bzw. das dieser falsch geschrieben ist.

Robocopy vergleicht also automatisch beim kopieren?
Eine msgbox wenn die Sicherung erfolgreich war, wäre mir lieb.

@Rego, danke für den Tipp :)
 
Robocopy hat auch Exitcodes, anhand derer Du den Erfolg prüfen kannst. Evtl. wäre eine der vielen grafischen Benutzeroberflächen etwas, bevor Du das Rad neu erfindest.
 
Ich möchte lediglich das die Sicherung mit dem Original nochmal verglichen wird und bei erfolgreicher Sicherung (nach dem Vergleich dann) eine MsgBox mit den Worten "Die Sicherung war erfolgreich" o.Ä. öffnet.
Könnt ihr mir da nen denkanstoß geben?
 
Hab ich doch. Die Exitcodes von Robocopy kannst Du auswerten und das Ergebnis in einer MSG-Box ausgeben.
 
Okay danke dir, werde mich da mal schlaulesen ;)
Mir ist grade noch eingefallen das auch die Berechtigungen der Ordner kopiert werden müssen.
Ist dafür ein anderer robocopy befehl besser? Ich nutze ja jetzt /e um alles zu kopieren.
 
Am anfang habe ich /copyall benutzt. Allerdings kopiert dies keine Unterordner. Und /sec soweit ich weiß auch nicht :/

Komme mit den Exitcodes irgendwie nicht klar :/
 
Du mußt natürlich beides nehmen:
/E /COPYALL
oder
/E /SEC
oder
/S /COPYALL
oder
/S /SEC

/S kopiert keine leeren Unterordner im Gegensatz zu /E

Ich habe das mithilfe von VB 2013 gemacht. Das wird Dir allerdings nicht viel nützen - und ist außerdem nicht wenig komplex.
 
Zurück
Oben