Modifizierte Dateien von einem Ordner in Verzeichnis mit verschiedenen Unterordnern überschreiben ...
Langsam aber sicher verzweifle ich...
Ich habe in einem "einzigen" Ordner 12.000 modifizierte Dateien mit der Endung *.jpg
Ordner "bearbeitete_Bilder"
und hätte gerne dass diese Dateien in einer Ordnerstruktur mit Unterordnern "bestehende" Dateien überschreibt.
wie kann ich es lösen, dass aus dem Ordner "bearbeitete_Bilder" genommen werden und in den verschiedenen Unterordnern alte, bestehende Dateien ersetzt werden "ohne" dass zusätzliche Dateien hinzugefügt werden?
z.B.
im Ordner Daten4711>Bilder160> ist nur die Datei > 4711_160_1.jpg - die überschrieben werden soll,
und im bearbeitete_bilder - Ordner gibt es eine weitere Datei 4711_160_2.jpg die aber nicht mit kopiert werden soll!
Ich freue mich auf eure Vorschläge und Lösungsansätze.
Ich habe in einem "einzigen" Ordner 12.000 modifizierte Dateien mit der Endung *.jpg
Ordner "bearbeitete_Bilder"
4711_160_1.jpg
4711_160_2.jpg
4711_160_3.jpg
4711_300_1.jpg
4711_300_2.jpg
4711_300_3.jpg
4711_600_1.jpg
4711_600_2.jpg
4711_600_3.jpg
c:/Daten4711> Bilder160 > 4711_160_1.jpg
c:/Daten4711> Bilder300 > 4711_300_1.jpg
c:/Daten4711> Bilder600 > 4711_600_1.jpg
wie kann ich es lösen, dass aus dem Ordner "bearbeitete_Bilder" genommen werden und in den verschiedenen Unterordnern alte, bestehende Dateien ersetzt werden "ohne" dass zusätzliche Dateien hinzugefügt werden?
z.B.
im Ordner Daten4711>Bilder160> ist nur die Datei > 4711_160_1.jpg - die überschrieben werden soll,
und im bearbeitete_bilder - Ordner gibt es eine weitere Datei 4711_160_2.jpg die aber nicht mit kopiert werden soll!
Ich freue mich auf eure Vorschläge und Lösungsansätze.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201714
Url: https://administrator.de/forum/modifizierte-dateien-von-einem-ordner-in-verzeichnis-mit-verschiedenen-unterordnern-ueberschreiben-201714.html
Ausgedruckt am: 16.05.2025 um 14:05 Uhr
6 Kommentare
Neuester Kommentar
Hallo internetzz und willkommen im Forum!
Das könnte etwa so gehen (ungetestet):
Wegen des "
Grüße
bastla
Das könnte etwa so gehen (ungetestet):
@echo off & setlocal
set "Quelle=C:\bearbeitete_Bilder"
set "Ziel1=C:\Daten"
set "Ziel2=Bilder"
for %%i in ("%Quelle%\*_*_*.jpg") do (
for /f "tokens=1-2 delims=_" %%a in ("%%~ni") do if exist "%Ziel1%%%a\%Ziel2%%%b\%%~nxi" echo copy "%%i" "%Ziel1%%%a\%Ziel2%%%b\"
)
pause
echo
" vor dem "copy
" wird (zum Testen) das Kopiern nur durch Ausgabe des Befehles simuliert - ohne das "echo
" wird kopiert und dabei die Zieldatei kommentarlos überschrieben ...Grüße
bastla
Hallo internetzz!
Deine Struktur weicht von der Beschreibung oben dadurch ab, dass Du unterhalb von zB "Bilder160" nochmals einen Ordner "4711" hast (mE eigentlich unnötig, wenn "4711" bereits in "C:\Daten4711" enthalten ist) - dann sähe das so aus:
Für weitere ev erforderliche Anpassungen:
%%a enthält den ersten Teil des Dateinamens (daher im Beispiel "4711") und
%%b enthält den zweiten Teil des Dateinamens (also "160")
Grüße
bastla
Deine Struktur weicht von der Beschreibung oben dadurch ab, dass Du unterhalb von zB "Bilder160" nochmals einen Ordner "4711" hast (mE eigentlich unnötig, wenn "4711" bereits in "C:\Daten4711" enthalten ist) - dann sähe das so aus:
echo off & setlocal
set "Quelle=C:\komprimiert"
set "Ziel1=D:\Daten4711"
set "Ziel2=Bilder"
for %%i in ("%Quelle%\*_*_*.jpg") do (
for /f "tokens=1-2 delims=_" %%a in ("%%~ni") do if exist "%Ziel1%%%a\%Ziel2%%%b\%%a\%%~nxi" copy "%%i" "%Ziel1%%%a\%Ziel2%%%b\%%a\" >nul
)
%%a enthält den ersten Teil des Dateinamens (daher im Beispiel "4711") und
%%b enthält den zweiten Teil des Dateinamens (also "160")
Grüße
bastla
Hallo internezz!
Du kannst das ja selbst gefahrlos testen, indem Du wieder das "
Nach Deiner Beschreibung müsste die "
Den Bestandteil %Ziel2% ("Bilder") gibt es also offensichtlich gar nicht ...
Noch zur Sicherheit: der Pfad nach "
Grüße
bastla
Du kannst das ja selbst gefahrlos testen, indem Du wieder das "
echo
" vor dem "copy
" platzierst (und die Ausgabeumleitung ">nul
", die dafür sorgt, dass nicht für jeden Kopiervorgang die Meldung "1 Datei(en) kopiert.
" ausgegeben wird, entfernst).Nach Deiner Beschreibung müsste die "
for /f
"-Zeile (die besser lesbar wäre, wenn Du auch <code>- bzw </code>-Tags verwendet hättest) so aussehen:for /f "tokens=1-2 delims=_" %%a in ("%%~ni") do if exist "%Ziel1%\%%b\%%a\%%~nxi" copy "%%i" "%Ziel1%\%%%b\%%a\" >nul
Noch zur Sicherheit: der Pfad nach "
if exist
" muss dem Pfad beim "copy
" enntsprechen (wobei bei ersterem nur noch zusätzlich der Dateiname als "%%~nxi
" mit angegeben sein muss).Grüße
bastla