Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

automatiserung:robocopy

Robocopy

Schnelles Tool von MS, gut für große Datensicherungsaufgaben geeignet. Download bei MS, z. B.

Syntax:

robocopy.exe Quelle Ziel Optionen

Skriptbeispiele

Synchronisierung zwischen 2 Ordnern (ohne Löschung)

robocopy.exe C:\Quellordner\ Z:\Zielordner\ /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO
robocopy.exe Z:\Zielordner\ C:\Quellordner\ /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO

Danach hat man zwei identische Verzeichnisse mit dem Inhalt des Quell- und Zielordners zusammengeführt. Will ich eine Datei bei Benutzung dieses Skriptes dauerhaft löschen, muss ich sie von Hand in beiden Ordnern entfernen, bevor dieses Skript das nächste mal läuft.

Spiegelung (Option "mirror")

Achtung: Dabei werden Löschungen, auch versehentliche, auf der Zielseite wiederholt. Für Datensicherung daher m.E. nicht ganz optimal.

robocopy.exe C:\Quellordner\ Z:\Zielordner\ /mir /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO

Danach hat man zwei identische Verzeichnisse mit dem Inhalt des Quellordners.

Versionen

Es gibt mehrere Versionen von Robocopy. Die Version XP026 (enthalten in Microsoft GUI für Robocopy) kennt vor allem die Option /DST, die den Zeitunterschied von Sommer- und Winterzeit erkennt und so bei Backups das Überkopieren aller Daten nach dem Uhrzeitwechsel unterdrückt. Obiges Skript etwa lautet dann:

robocopy.exe C:\Quellordner\ Z:\Zielordner\ /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO /DST
robocopy.exe Z:\Zielordner\ C:\Quellordner\ /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO /DST

Option /XD zum Ausschließen bestimmter Verzeichnisse

Folgende Anweisung kopiert den gesamten TM Ordner außer den PraxisDBs (um Fehlermeldungen zu vermeiden):

robocopy.exe C:\Turbomed\ t:\TurboMed\ /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO /DST /XD C:\Turbomed\PraxisDB\ /XD C:\Turbomed\StammDB\ /XD C:\Turbomed\DruckDB\

Sichern der Dokumente der letzten 7 Tage mit robocopy

Die TM-Dokumente, die in den letzten 7 Tagen auf "server" verändert/erstellt wurden, werden in der Praxis auf U:\robo\ gesichert

robocopy "\\server\TurboMed\Dokumente" "U:\robo" /S /MAXAGE:7 /R:10 /W:30  /DST

Importieren der TM-Dokumente von U:\robo\ mit robocopy

Die Dokumente werden zu Hause nach T:\turbomed\Dokumente von einem externen Medium importiert

robocopy.exe "U:\robo" "T:\turbomed\Dokumente" /E /ZB /COPY:DAT /R:0 /W:0

HTA-Skript zur einfachen Bedienung

(mit einem Texteditor mit der Endung .hta abspeichern) oder hier runterladen

<html>
<head>
<title>Robocopy einfach!</title>
<HTA:APPLICATION 
   ID="objHTA"
   APPLICATIONNAME="MyHTA"
   MAXIMIZEBUTTON="no"
   MINIMIZEBUTTON="no"
   SCROLL="yes"
   SINGLEINSTANCE="yes"
>
</head>
<SCRIPT Language="VBScript">

Option Explicit
dim quellpfad, zielpfad
Sub Window_onLoad
  window.resizeTo 900, 550
End Sub

Sub Quellw
	dim quelle, quellordner
	Set Quelle = CreateObject("Shell.Application").BrowseForFolder(0,"Bitte Quellverzeichnis auswählen",16,0) 
	If Not Quelle Is Nothing Then
	Set quellordner = quelle.Self
	quellpfad = quellordner.path
	QuelleTextbox.value=quellpfad
	End If
End Sub

Sub Zielw
	dim ziel, zielordner
	Set ziel = CreateObject("Shell.Application").BrowseForFolder(0,"Bitte Zielverzeichnis auswählen",16,0) 
	If Not ziel Is Nothing Then
	Set zielordner = ziel.Self
	zielpfad = zielordner.Path 
	ZielTextbox.value=zielpfad
	End If
End Sub

Sub Marsch
  Dim WshShell, befehl, befehl2
  set WshShell = createobject("wscript.shell") 
 	befehl = "robocopy.exe " & quellpfad & " " & zielpfad & Listbox1.Value
rem MsgBox(befehl)
BefehlTextbox.Value=befehl
 If bidir.Checked Then
	 befehl2 = "robocopy.exe " & zielpfad & " " & quellpfad & Listbox1.Value
	 rem msgbox(befehl2)
	 Befehl2Textbox.Value=befehl2
	 Else
	 befehl2=" "
	 Befehl2Textbox.Value=befehl2
End If
if msgbox (befehl & vbNewLine & befehl2, 1 + 16, "Ihr Befehl lautet:") = vbOK then
	WshShell.Run befehl,1,true
		If bidir.Checked Then
		WshShell.Run befehl2,1,true
		End If		
	else msgbox "Robocopy wurde nicht gestartet", 64, "Info:"
End if
End SUb
  
	Sub RunScript
	rem Msgbox Listbox1.Value
	OptionTextbox.value=Listbox1.Value
End Sub

</SCRIPT>
<body>
<input style="width:90px" type="Button" value="Quellwahl" onClick="Quellw"> 
<input type="text" name="QuelleTextbox" size="100"><P>
<input style="width:90px" type="Button" value="Zielwahl" onClick="Zielw">
<input type="text" name="ZielTextbox" size="100"><P>
<A>update heißt: alles von der Quelle wird ins Ziel kopiert werden</A><BR>
<A>mirror heißt: das Ziel wird identisch mit der Quelle sein (Achtung: auch Löschungen!!!)</A><P>
<select style="width:90px" size="3" name="Listbox1" onChange="RunScript">
<option value=" /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO /DST">update</option>
<option value=" /E /ZB /FFT /COPY:DAT /R:0 /W:0 /NP /XO /DST /MIR">mirror</option>
<option value="">keine</option>
</select>
<input type="text" name="OptionTextbox" size="100"><P>
<A>Ihr Befehl:</A><P>
<input type="text" name="BefehlTextbox" size="130"><P>
<input type="checkbox"name="bidir"value="1"> Bidirektional (bei "update" entstehen zwei komplett synchronisierte Ordner; bei "mirror" überflüssig)<BR>
<A>Ihr bidirektionaler Befehl:</A><P>
<input type="text" name="Befehl2Textbox" size="130"><P>
<A>Hier starten Sie Robocopy:</A> 
<input type="Button" value="Action" onClick="Marsch"><P>
<A>Sie müssen robocopy.exe auf diesem Rechner in einem ausführbaren Pfad installiert haben</A>
</body>
</html>

jrr 23.05.2011 02:51

Diskussion

johnny, 29.10.2011 20:11

Benutze auch robocopy um meine DICOM Daten incrimentiel von meinem TurboMed server von einer 2. Festplatte (2 Terabyte) auf ein NAS (Buffalo Tera station III) jeden Tag zu kopieren.

Gut geholfen hat mir, als neuer Benuter von robocopy, die graphische Benutzer Oberfläche (GUI) von YARCGUI mit der man solch ein selbsttätiges script, auch als exe Datei erstellen kann

automatiserung/robocopy.txt · Zuletzt geändert: 25.05.2011 12:34 von jrr