omussmann
Goto Top

Ordner synchronisieren via Batch

Hallo an die Gemeinde ...

habe folgende Herausforderung:

ich möchte aus dem Qellverseichnis \\server\headquater\daten nur bestimmte Dateien in ein Verzeichnis aller Filialen kopieren.

\\server\filiale01\daten
\\server\filiale02\daten
\\server\filiale03\daten

Die Namen der zu kopierenden Dateien wären in einem Textfile zu finden. Da die Anzahl der Filialen dynamisch ist, aber der Name des Ordners immer mit Filiale anfängt, wäre es gut, wenn das Script nach allen Ordner mit dem Namensbestandteil Filiale schaut und dann in den Unter-Ordner daten die Dateien kopiert.

Mein Ansatz, jede zu kopierende Datei für jede Filiale einzeln via xcopy zu kopieren, ist zu aufwendig, da sich die zu kopierenden Dateien ändern können .

Wie könnte ein ein besserer Ansatz aussehen?

Gruß
Oliver

Content-ID: 150519

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

Ausgedruckt am: 25.11.2024 um 23:11 Uhr

bastla
bastla 07.09.2010 um 14:31:41 Uhr
Goto Top
Hallo ORatajczak!

Sollte (ungetestet) direkt von der Kommandozeile etwa so gehen:
for /d %i in (\\server\filiale*) do for /f "usebackq delims=" %a in ("\\server\headquater\Dateiliste.txt") do echo copy "%a" "%i\daten\"
Das "echo" dient zum Testen, da so die "copy"-Befehle nur angezeigt, aber noch nicht ausgeführt werden. Um einen Batch daraus zu machen, jeweils anstelle von "%i" "%%i" und analog für "%a" "%%a" verwenden.

Falls in der Dateiliste nur die Dateinamen ohne Pfadangabe enthalten sind, müsste die Zeile eher so aussehen:
for /d %i in (\\server\filiale*) do for /f "usebackq delims=" %a in ("\\server\headquater\Dateiliste.txt") do echo copy "\\server\headquater\daten\%a" "%i\daten\"
Grüße
bastla
OMussmann
OMussmann 07.09.2010 um 15:36:57 Uhr
Goto Top
Leider flackert nur kurz das Scriptfenster auf ... sonst passiert leider nichts ...
Snowman25
Snowman25 07.09.2010 um 16:14:54 Uhr
Goto Top
Du solltest das Script erst mal vom Prompt aus starten. Dort siehst du auch etwaige Fehler.
Ausserdem musst du die echo befehle vor dem copy entfernen.
OMussmann
OMussmann 07.09.2010 um 18:15:21 Uhr
Goto Top
Über Start Ausführen Cmd lässt sich das problemlos ausführen. Führe ich das aber über eine Batch/CMD aus, dann das besagte Problem ... ???
76109
76109 07.09.2010 um 18:58:15 Uhr
Goto Top
Hallo ORatajczak!

Wie bastla bereits erwähnt hat, musst Du Im Batch-File die Prozentzeichen bei den Variablen verdoppeln (%%i, %%a...)

Gruß Dieter
HarLeaQuinn
HarLeaQuinn 07.09.2010 um 22:45:00 Uhr
Goto Top
was ist mit "ausführen als Administrator", wenn Du das Batch direkt ausführst? Und bei Starten als Aufgabe unter Windows Server 2008 an den Haken mit dem "Ausführen mit höchsten Privilegien" denken!
OMussmann
OMussmann 08.09.2010 um 22:52:22 Uhr
Goto Top
Hallo an Alle,

es passt nun Alles. Mein Fehler, habe mich einfach nur vertippt.

Vielen Dank für den Support ... face-smile

Gruß
Oliver
Snowman25
Snowman25 09.09.2010 um 09:12:29 Uhr
Goto Top