Datein aus mehreren Unterordnern in einen Ordner kopieren und umbennenen
Hallo miteinander,
habe folgendes Problem:
Von mehreren Unterordnern sind jeweils 2 Datentypen enthalten (jpg und jgw)
In jeden Ordner sind genau die gleichen Dateien entahlen (Name und Endung gleich)
Diese Dateien will Ich in einen einzigen Ordner kopieren.
Problem
Aufgrund dergleichen Dateinamen gibt es nur die Option überschreiben oder nicht.
Ich will aber alle Dateien kopieren und mit einer fortlaufenden Nummer zum unterscheiden versehen
Bsp:
Ordner 185252
-- 2827222.jgw
-- 2827222.jpg
Ordner 185253
-- 2827222.jgw
-- 2827222.jpg
usw...
Ziel:
Ordner (Gesammt)
-- 2827222.jgw
-- 2827222.jpg
-- 2827222(1).jgw
-- 2827222(2).jpg
Das mit den Umbennen funktionier auch noch nicht so ganz wie ich mir das Vorstelle
Habt ihr ein paar Ansätze oder Lösungvorschläge wie ich das Umsetzen kann?
habe folgendes Problem:
Von mehreren Unterordnern sind jeweils 2 Datentypen enthalten (jpg und jgw)
In jeden Ordner sind genau die gleichen Dateien entahlen (Name und Endung gleich)
Diese Dateien will Ich in einen einzigen Ordner kopieren.
FOR /F "delims=#" %i IN ('dir /ad /b /s C:\18') DO @copy "%i\" C:\Z
Problem
Aufgrund dergleichen Dateinamen gibt es nur die Option überschreiben oder nicht.
Ich will aber alle Dateien kopieren und mit einer fortlaufenden Nummer zum unterscheiden versehen
Bsp:
Ordner 185252
-- 2827222.jgw
-- 2827222.jpg
Ordner 185253
-- 2827222.jgw
-- 2827222.jpg
usw...
Ziel:
Ordner (Gesammt)
-- 2827222.jgw
-- 2827222.jpg
-- 2827222(1).jgw
-- 2827222(2).jpg
Das mit den Umbennen funktionier auch noch nicht so ganz wie ich mir das Vorstelle
set z=0
set /a z=z+1
ren *.jpg *%z%
Habt ihr ein paar Ansätze oder Lösungvorschläge wie ich das Umsetzen kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 357909
Url: https://administrator.de/forum/datein-aus-mehreren-unterordnern-in-einen-ordner-kopieren-und-umbennenen-357909.html
Ausgedruckt am: 04.05.2025 um 13:05 Uhr
3 Kommentare
Neuester Kommentar

Heutzutage macht man sowas mit Powershell
Pfade in der letzten Zeile anpassen, feeeeedich.
Vorgang ist immer gleich egal welche Skriptsprache, in der FOR-Schleife mit einer while Schleife prüfen ob Dateiname vorhanden wenn ja dann Zähler erhöhen und so lange weitermachen bis ein Dateiname frei ist.
function Copy-Flat([string]$source,[string]$destination,[string[]]$Filefilter){
gci $source -Include $FileFilter -Recurse | %{
$dest = "$destination\$($_.Name)";$cnt = 1
while(Test-Path $dest){$dest = "$destination\$($_.Basename)($cnt)$($_.Extension)"; $cnt++}
copy-item $_.Fullname -Destination $dest -Force
}
}
Copy-Flat -source 'C:\18' -destination 'C:\Z' -Filefilter '*.jpg','*.jgw'
Vorgang ist immer gleich egal welche Skriptsprache, in der FOR-Schleife mit einer while Schleife prüfen ob Dateiname vorhanden wenn ja dann Zähler erhöhen und so lange weitermachen bis ein Dateiname frei ist.

Jepp aber warum sollte man sich das Genudel antun
?!
@echo off & setlocal Enabledelayedexpansion
set "quelle=c:\18"
set "ziel=c:\z"
set /a cnt=1
for /f "delims=" %%a in ('dir /b /s /a-d "%quelle%" ^| findstr /iel "*.jpg *.jwg"') do (
call :checkfile "%%a"
)
goto :eof
:checkfile
if not exist "%ziel%\%~nx1" (
copy "%~1" "%ziel%"
set /a cnt=1
) else (
call :checkfile "%ziel%\%~n1(!cnt!)%~x1"
set /a cnt +=1
)
exit /b