Freezet
вариант с переименованием (если целевой файл уже существует):
Код:

@Echo Off
Set $SRC=C:\*.JPG
Set $DST=D:\FILES
If Not Exist %$DST% MD %$DST% 2>Nul
If Not Exist %$DST% (
@Echo Ошибка! Целевой каталог не обнаружен.
Exit
)
For /F "Delims=" %%i In ('DIR /B/S/A:-D %$SRC%') Do (
Call :FileGetNewName "%%i" "%$DST%"
Call :FileCopy "%%i"
)
Exit
:FileCopy
:: ---
:: %1 - полное имя исходного файла, включая путь
:: ---
Echo From: %~1
Echo To : %$N%%$I%%$X%
Echo.
Copy "%~1" "%FileGetNewName%" >Nul
GoTo :EOF
:FileGetNewName
:: ---
:: %1 - полное имя исходного файла, включая путь
:: %2 - путь к целевому каталогу
:: ---
Set $I=
Set FileGetNewName=
If Not Exist "%~1" GoTo :EOF
For %%i In ("%~1") Do Set $N=%%~ni
For %%i In ("%~1") Do Set $X=%%~xi
:FileGetNewName_LOOP
Set FileGetNewName=%~2\%$N%%$I%%$X%
If Not Exist "%FileGetNewName%" GoTo :EOF
Set /A $I +=1
GoTo FileGetNewName_LOOP