Não é exatamente "xxx (1) .ext" no Windows 7. "File Name.ext" é copiado para "File Name - Copy.ext" e, em seguida, "File Name - Copy (2) .ext", " Nome do arquivo - Copiar (3) .ext "e assim por diante. Em vez disso, você quer que "File Name.ext" seja copiado para "File Name_1.ext", "File Name_2.ext" e assim por diante? O arquivo cmd pode ser facilmente modificado de acordo:
for %%f in (%*) do call :try_copy %%f 1
goto :eof
:try_copy
if not exist "%~n1_%2%~x1" goto :copy
call :try_next %1 %2
goto :eof
:copy
copy %1 "%~n1_%2%~x1"
goto :eof
:try_next
if "%2" == "" ( set _next=1 ) else ( set /a _next=%2 + 1 )
call :try_copy %1 %_next%
goto :eof
Editar: Conforme a discussão abaixo, modifique o arquivo em lote para copiar arquivos para uma pasta específica e renomeie sequencialmente:
REM Specify your destination path below without quotes or trailing backslash
set folder=I:\New folder
for %%f in (%*) do call :try_copy %%f 1
goto :eof
:try_copy
if not exist "%folder%\%~n1_%2%~x1" goto :copy
call :try_next %1 %2
goto :eof
:copy
copy %1 "%folder%\%~n1_%2%~x1"
goto :eof
:try_next
if "%2" == "" ( set _next=1 ) else ( set /a _next=%2 + 1 )
call :try_copy %1 %_next%
goto :eof