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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150519
Url: https://administrator.de/contentid/150519
Ausgedruckt am: 25.11.2024 um 23:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo ORatajczak!
Sollte (ungetestet) direkt von der Kommandozeile etwa so gehen:
Das "
Falls in der Dateiliste nur die Dateinamen ohne Pfadangabe enthalten sind, müsste die Zeile eher so aussehen:
Grüße
bastla
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\"
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\"
bastla
Hallo ORatajczak!
Wie bastla bereits erwähnt hat, musst Du Im Batch-File die Prozentzeichen bei den Variablen verdoppeln (%%i, %%a...)
Gruß Dieter
Wie bastla bereits erwähnt hat, musst Du Im Batch-File die Prozentzeichen bei den Variablen verdoppeln (%%i, %%a...)
Gruß Dieter