Benutzerprofil kopieren per Batch-Datei

solmk

Lt. Commander
Registriert
Okt. 2013
Beiträge
1.206
Moin in die Runde!
Da ich aktuell immer wieder komplette Benutzerprofile von einem Computer zu einem anderen Computer übers interne Netzwerk kopieren muss, ist mir die Idee gekommen, dafür eine kleine Batch zu schreiben.

IST-Situation:
Laufwerk C: des Quellcomputers wird von Zielcomputer mittels
Code:
\\Computername des Quellsystems\C$
aufgerufen. Dann kopiere ich den gewünschten Pfad des Benutzerprofils und kopiere diesen mittels Robocopy auf das Zielsystem.
Code:
robocopy "\\Computername des Quellsystems\C$\Users\mustermann" "C:\backup" /MIR /Z /XF *.ost

Die Batch soll nun ein paar Abfragen enthalten um den Kopiervorgang starten zu können:
Welcher Computername?
Wie heißt der Benutzer?
Wohin soll kopiert werden?

Wie setzte ich das nun am besten um?
Für jeden Tipp bin ich dankbar! :)

Gruß
Kümmel
 
Warum so umständlich? Mach dir ne Batch und anstatt der ominösen (und fehleranfällige) Fragestunde, kannst du auch einfach Parameter nutzen. %1 als Quelle, die Batch ist dann griffbereit auf dem Desktop o.ä. und du ziehst dann per Drag'n'Drop einfach die entsprechende Freigabe bzw. den speziellen (User-)Ordner auf die Batch. und schon gehts los. Die Fragestunde kannst du ja ggf. trotzdem starten, falls nichts übergeben wurde.
 
Eine Batch will ich ja haben wie gesagt. Wie mach ich das denn mit de %1? Das habe ich noch nicht ganz verstanden.
Kannst du mir da ein Beispiel geben?
 
Leg mal eine Batch an
Code:
echo Übergabe: "%1"
und zieh dort mal nen Ordner drauf. Und dann mal direkt in der Konsole starten und die Ausgabe beobachten. Abfangen kannst du das dann mit
Code:
if [%1] == [] goto :abfrage_starten
if exists "%1" goto :ordner_direkt_kopieren
 
Blick noch nicht ganz durch. Habe jetzt einen Ordner namens "Test" erstellt und auf eine Batch-Datei mit folgendem Inhalt gezogen:
Code:
echo Übergabe: "%1"
Ein Fenster öffnet sich kurz und schließt sich gleich wieder.
Aber was soll mir das bringen? Wie soll meine vollständige Batch dann aussehen?
Vorab aber danke schonmal! :)
 
Code:
@echo off

chcp 65001 > nul

if [%1] == [] goto :abfrage
if exist %1 goto :direkt_kopieren

:abfrage
set /p freigabe="Freigabe: "
set /p user="User: "
set /p ziel="Zielordner: "

set quelle="%freigabe%\C$\%user%\"

if exist "%ziel%" (
	if exist "%ordner%" (
		goto :kopieren
	) else (
		echo "Quellordner '%ordner%' existiert nicht".
		goto :ende
	)
) else (
	echo "Zielordner existiert nicht!"
	goto :ende
)

goto :ende

:direkt_kopieren

set quelle=%1
set quelle=%quelle:"=%
echo Quelle: %quelle%
set /p ziel="Zielordner: "

if exist "%ziel%" (
	goto :kopieren
) else (
	echo "Zielordner existiert nicht!"
	goto :ende
)

:kopieren

robocopy "%quelle%" "%ziel%"

:ende
pause
So oder so ähnlich. So musst du nicht alles per Hand eingeben. Einzige "Fehlerquelle": Du kannst ohne weitere Überprüfung jeden Ordner kopieren. Aber das würde ich eher als Feature sehen. Zielordner ggf. noch festsetzen und es geht gänzlich ohne Abfragen. Theoretisch kannst du das nun auch ins "Senden An"-Menü verfrachten, je nachdem was für dich eleganter ist.
 
WOW! Vielen, vielen Dank für die ganze Mühe! Ich werde es morgen testen und dann wieder berichten. :)
 
Zurück
Oben