estethics
Goto Top

Batch Folder kopieren mit Logfile

Ich hoffe ihr könnt mir helfen, weil ich in der Batch Programmierung total unbedarft bin... Danke schonmal!

Ich bräuchte eine Batch Datei, die von einem Shared (Server1) sagen wir "\\server1\blabla" auf denanderen Shared (Server2) "\\server2\blabla" den Folder mit Unterverzeichnissen und Dateien kopiert.

Der Kopiervorgang soll bei Fehlern nicht abgebrochen werden, sondern nur die nicht kopierten Dateien in einem Logfile ausgeben.

Kann mir einer helfen?

Wäre dankbar...

Grüße

Content-ID: 102105

Url: https://administrator.de/contentid/102105

Ausgedruckt am: 26.11.2024 um 11:11 Uhr

Estethics
Estethics 18.11.2008 um 16:58:20 Uhr
Goto Top
Also ich hab mal selbst was probiert, ist aber wahrscheinlich absoluter nonsens:

@echo off
xcopy \\server1\x$\test \\server2\x$\\test /C /E /I

IF ERRORLEVEL 1 goto log_warning
ELSE goto no_warning

:log_warning
f:\E\failedcopy.log

:no_warning
f:\E\successfulcopy.log

Kann man das so machen? Die Batch soll auf Server 1 ausgeführt werden und dann den Folder "test" auf den server 2 kopieren. Logfile "failedcopy" soll die Namen der nichtkopierten Dateien beinhalten und "successfulcopy" die Namen der Kopierten Dateien...
51705
51705 18.11.2008 um 18:51:57 Uhr
Goto Top
Oder man nutzt Robocopy aus den Resource Kit Tools (http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff- ...) ):

robocopy "\\server1\blabla" "\\server2\blabla" /e /w:3 /r:3 /np /LOG:[Pfad und Name deines Logfiles]

Grüße, Steffen
Estethics
Estethics 19.11.2008 um 09:41:57 Uhr
Goto Top
Ich hätte gern eine Batch file selbst geschrieben. Natürlich hätte das robocopy seinen Vorteil. Kann man das so machen wie ich es oben geschrieben habe?
Ren
Ren 19.11.2008 um 14:24:41 Uhr
Goto Top
nicht ganz:
@echo off
if exist f:\E\successfulcopy.log del successfulcopy.log
if exist f:\E\failedcopy.log del failedcopy.log
xcopy \\server1\x$\test \\server2\x$\test /C /E /I >f:\E\xcopy.log
IF ERRORLEVEL 1 (goto log_warning) ELSE goto no_warning
goto :end

:log_warning
ren f:\E\xcopy.log failedcopy.log
goto :end

:no_warning
ren f:\E\xcopy.log successfulcopy.log
goto :end

:end
nicht getestet, sollte aber gehen...
Estethics
Estethics 19.11.2008 um 14:38:18 Uhr
Goto Top
Danke!

Muss ich noch etwas ergänzen, da diese beiden Server in einer Domäne stehen?! Also domänenname des servers angeben, bzw. anmeldename und passwort? Das Batch wird auf Server1 direkt angestoßen.
Ren
Ren 19.11.2008 um 15:00:44 Uhr
Goto Top
ja, die Batch funktioniert so nur, wenn du mit dem Benutzer, der sie ausführt, auf server1\x$\test lesen darfst, und auf server2\x$\test schreiben darfst. Sonst musst du noch ein
 net use \\server2\x$ /user:[BENUTZER] [PASSWORD] 
vor den xcopy-Befehl einfügen. Das funktioniert übrigens auch nur, wenn noch kein anderer Benutzer auf einen Freigabe von server2 zugreift. das ließe sich mit net use auf der Kommandozeile überprüfen.
Estethics
Estethics 19.11.2008 um 15:06:57 Uhr
Goto Top
Zitat von @Ren:
ja, die Batch funktioniert so nur, wenn du mit dem Benutzer, der sie
ausführt, auf server1\x$\test lesen darfst, und auf
server2\x$\test schreiben darfst. Sonst musst du noch ein
> net use \\server2\x$ /user:[BENUTZER] [PASSWORD] 
vor den
xcopy-Befehl einfügen. Das funktioniert übrigens auch nur,
wenn noch kein anderer Benutzer auf einen Freigabe von server2
zugreift. das ließe sich mit net use auf der Kommandozeile
überprüfen.

Ok,
vielen dank Ren!
Ren
Ren 19.11.2008 um 15:14:35 Uhr
Goto Top
Freut mich ja, dass ich auch mal helfen konnte. So viel Hilfe, wie ich hier schon bekam!