Die StackOverflow-Post- Batchdatei für Windows zum Kopieren und Aufbewahren von Duplikaten enthält in dieser Antwort ein vorgegebenes .bat
Skript mit zwei Argumenten: SourcePath TargetPath. Er kopiert rekursiv alle Dateien aus SourcePath und seinen Unterordnern in TargetPath, ignoriert Dateien aus dem Zielordner und fügt einen ansteigenden Zähler an den Basisnamen für Duplikate an.
::copyFlat sourcePath TargetPath @echo off setlocal disableDelayedExpansion :: Initialize and validate arguments if "%~2" equ "" echo Error: Insufficient arguments>&2&exit /b 1 set "source=%~f1" if not exist "%source%\" echo Error: Source folder "%source%" does not exist>&2&exit /b 1 set "target=%~f2" if exist "%target%\" echo Error: Target folder "%target%" already exists>&2&exit /b 1 :: Do the work md "%target%" set /a n=0 for /r "%source%" %%F in (*) do if "%%~dpF" neq "%target%\" ( if exist "%target%\%%~nxF" ( set /a n+=1 set "full=%%F" set "name=%%~nF" set "ext=%%~xF" setlocal enableDelayedExpansion copy "!full!" "!target!\!name!_!n!!ext!" >nul endlocal ) else copy "%%F" "%target%" >nul )