@echo off
cd/d %~dp0
for /f %%f in ('dir/b A') do (
if not exist "B\%%f" (copy "A\%%f" B) else (call :cpy_an "%%~f")
)
goto :eof
:cpy_an
setlocal enableDelayedExpansion
for /f "tokens=1* delims=-" %%i in ("%~1") do (
set fn=%%i
set/a num=%%j
:rn
set/a num+=1
if exist "B\!fn!-!num!%~x1" goto :rn
copy "A\%~1" "B\!fn!-!num!%~x1"
)
goto :eof