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-Key: 102105

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

Printed on: April 18, 2024 at 13:04 o'clock

Member: Estethics
Estethics Nov 18, 2008 at 15:58:20 (UTC)
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...
Mitglied: 51705
51705 Nov 18, 2008 at 17:51:57 (UTC)
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
Member: Estethics
Estethics Nov 19, 2008 at 08:41:57 (UTC)
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?
Member: Ren
Ren Nov 19, 2008 at 13:24:41 (UTC)
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...
Member: Estethics
Estethics Nov 19, 2008 at 13:38:18 (UTC)
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.
Member: Ren
Ren Nov 19, 2008 at 14:00:44 (UTC)
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.
Member: Estethics
Estethics Nov 19, 2008 at 14:06:57 (UTC)
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!
Member: Ren
Ren Nov 19, 2008 at 14:14:35 (UTC)
Goto Top
Freut mich ja, dass ich auch mal helfen konnte. So viel Hilfe, wie ich hier schon bekam!