Я предполагаю, что ваше исходное имя — «image.jpeg», а место назначения имеет добавленный суффикс.
Я рекомендую ставить точку перед добавленным суффиксом, чтобы было понятно, где заканчивается исходное имя и начинается суффикс. Ваше исходное имя уже могло иметь число в конце.
Вот грубый, но очень эффективный метод перебора, который поддерживает до 100 копий. Очевидно, что верхний предел может быть легко увеличен.
call :backup "c:\image.jpeg"
exit /b
:backup
for /l %%N in (1 1 100) do (
if not exist "G:\backup\%~n1.%%N.%~x1" (
echo F|xcopy %1 "G:\backup\%~n1.%%N.%~x1" >nul
)
exit /b
)
Но есть потенциальная проблема. Предположим, что image.1.txt и image.2.txt уже существуют, но затем вы удаляете image.1.txt. При следующем резервном копировании будет воссоздан image.1.txt, и тогда вы можете подумать, что image.2.txt — это самая последняя резервная копия.
Следующее можно использовать, чтобы всегда создавать новую резервную копию с суффиксом номера на 1 больше, чем самый большой существующий суффикс, даже если в числах есть целые числа.
@echo off
call :backup "c:\image.jpeg"
exit /b
:backup
setlocal disableDelayedExpansion
set /a n=0
for /f "eol=: delims=" %%A in (
'dir /b "g:\backup\%~n1.*%~x1"^|findstr /rec:"\.[0-9][0-9]*\%~x1"'
) do for %%B in ("%%~nA") do (
setlocal enableDelayedExpansion
set "n2=%%~xB"
set "n2=!n2:~1!"
if !n2! gtr !n! (
for %%N in (!n2!) do (
endlocal
set "n=%%N"
)
) else endlocal
)
set /a n+=1
echo F|xcopy %1 "g:\backup\%~n1.%n%%~x1" >nul
person
dbenham
schedule
01.12.2012
xcopy /H /Y /C /R "C:\image.jpeg" "G:\backup\image1.jpeg"
? Ваш вопрос не совсем понятен в том виде, в котором он написан. - person dbenham   schedule 01.12.2012