Batch Datei für Ordner Inhalt auf anderen Ordner verteilen
Hallo an alle,
ich bräuchte eure Hilfe.
Ich brauch eine Batch Datei die folgendes tut.
Ordner mit dem Namen "xy" in einem Verzeichnis sucht (D:\Daten), wenn er sie gefunden hat löscht und einen neuen Ordner der an einem Quellpfad liegt einfügt. Dabei sollte der Quellordner natürlich nicht gelöscht werden.
Bsp.
Auf Laufwerk D:\Daten\Vorlage\config (Quelleverzeichnis)
Ziel(1) D:\Daten\Test1
Ziel (2) D:\Daten\Test1
Somit kann ich den Ordner config einmal aktualisieren und durch die Batch Datei die anderen 124 Ordner synchronisieren.
Vielen Dank
Gruß Olli
ich bräuchte eure Hilfe.
Ich brauch eine Batch Datei die folgendes tut.
Ordner mit dem Namen "xy" in einem Verzeichnis sucht (D:\Daten), wenn er sie gefunden hat löscht und einen neuen Ordner der an einem Quellpfad liegt einfügt. Dabei sollte der Quellordner natürlich nicht gelöscht werden.
Bsp.
Auf Laufwerk D:\Daten\Vorlage\config (Quelleverzeichnis)
Ziel(1) D:\Daten\Test1
Ziel (2) D:\Daten\Test1
Somit kann ich den Ordner config einmal aktualisieren und durch die Batch Datei die anderen 124 Ordner synchronisieren.
Vielen Dank
Gruß Olli
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 195055
Url: https://administrator.de/contentid/195055
Ausgedruckt am: 24.11.2024 um 08:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo Olli1989!
Wenn Du jetzt noch konkretisierst, was unter "Ersetzen" zu verstehen ist (etwa: Name des Ordners soll gleich bleiben, Inhalt soll durch den Inhalt des Quellordners ersetzt werden, Ordner darf dazu gelöscht und neu erstellt werden) und klar stellst, wie die Zielordner gefunden werden sollen (Liste | alle Unterordner eines bestehenden Ordners | bestimmte Unterordner eines bestehenden Ordners, die anhand eines Namensbestandteiles identifiziert werden können) und ob der Inhalt des Quellordners in jeden dieser Ordner übertragen werden sollen, wird's vermutlich ganz gut ...
Grüße
bastla
Wenn Du jetzt noch konkretisierst, was unter "Ersetzen" zu verstehen ist (etwa: Name des Ordners soll gleich bleiben, Inhalt soll durch den Inhalt des Quellordners ersetzt werden, Ordner darf dazu gelöscht und neu erstellt werden) und klar stellst, wie die Zielordner gefunden werden sollen (Liste | alle Unterordner eines bestehenden Ordners | bestimmte Unterordner eines bestehenden Ordners, die anhand eines Namensbestandteiles identifiziert werden können) und ob der Inhalt des Quellordners in jeden dieser Ordner übertragen werden sollen, wird's vermutlich ganz gut ...
Grüße
bastla
Hallo Olli1989!
Dann vielleicht so:
Zum gefahrlosen Testen sind die Zeilen 8 und 9 durch das vorangestellte "
Hinweise: Es werden hier sämtliche Ordner "xy" unterhalb des jeweiligen Zielordners gesucht, nicht nur jene in der 3. Ordnerebene, und es werden die vorhandenen Ordner inkl Unterordner zunächst komplett gelöscht.
Grüße
bastla
Dann vielleicht so:
@echo off & setlocal
set "QuellPfad=D:\Software1\Vorlage"
set "Ordner=xy"
set Zielpfade="D:\Software1","D:\Software2"
for %%i in (%Zielpfade%) do (
for /f "delims=" %%a in ('dir /s/b/ad "%%~i\%Ordner%" 2^>nul^|findstr /ivc:"%Quellpfad%"') do (
echo rd /s /q "%%a"
echo xcopy /e "%QuellPfad%\%Ordner%" "%%a\"
)
)
pause
echo
" entschäft - es werden so die jeweiligen Befehle für das Löschen des vorhandenen Ordners (samt Unterordner) und Kopieren des Quellordners nur angezeigt. Wenn das Ergebnis vernünftig aussieht, diese beiden "echo
" entfernen ...Hinweise: Es werden hier sämtliche Ordner "xy" unterhalb des jeweiligen Zielordners gesucht, nicht nur jene in der 3. Ordnerebene, und es werden die vorhandenen Ordner inkl Unterordner zunächst komplett gelöscht.
Grüße
bastla
Hallo Olli1989!
Wenn der Quellordner nicht "W:\Daten\Vorlagen\PublishSkripte\PublishSkripte" ist, müsstest Du den Quellpfad (in Zeile 2) anpassen ...
Grüße
bastla
P.S.: "Code"-Formatierung macht einen Batch besser lesbar (und lässt sich auch leicht nachträglich hinzufügen ) ...
Wenn der Quellordner nicht "W:\Daten\Vorlagen\PublishSkripte\PublishSkripte" ist, müsstest Du den Quellpfad (in Zeile 2) anpassen ...
Grüße
bastla
P.S.: "Code"-Formatierung macht einen Batch besser lesbar (und lässt sich auch leicht nachträglich hinzufügen ) ...
Hallo Olli1989!
Versuch es mal damit
Variablen sind übrigens u.a. dazu da, verwendet zu werden - anderenfalls sind auch die Prozentzeichen unnötig ...
Grüße
bastla
Versuch es mal damit
echo off & setlocal
set "QuellPfad=W:\Daten\Vorlagen"
set "Ordner=PublishSkripte"
set Zielpfade="W:\Daten\Rehadat-Elan","W:\Daten\Snapform"
for %%i in (%Zielpfade%) do (
for /f "delims=" %%a in ('dir /s/b/ad "%%~i\%Ordner%" 2^>nul^|findstr /ivc:"%Quellpfad%\%Ordner%"') do (
rd /s /q "%%a"
xcopy /e "%Quellpfad%\%Ordner%" "%%a\"
)
)
pause
Grüße
bastla