The Batch program below assume that newer files have revision numbers or letters in ascending alphabeticall order, so the last listed file is the newest one. This way, the program identify a set of files that begin with the same name, and copy the last one of the set with the name of the first one in the set.
@echo off
setlocal EnableDelayedExpansion
set baseName=
for %%a in (*.*) do (
if not defined baseName (
rem Is first name of first set
set baseName=%%~Na
set baseExt=%%~Xa
set lastName=%%~Na
) else (
rem Check if this name begin with same baseName
set name=%%~Na
for %%b in (!baseName!) do set name=!name:*%%b=!
if "!name!" neq "%%~Na" (
rem Yes: Is next name of same set
set lastName=%%~Na
) else (
rem No: Is first name of next set: copy previous set and pass to next one
ECHO copy "!lastName!!baseExt!" "C:\dest\dir\!baseName!!baseExt!"
set baseName=%%~Na
set baseExt=%%~Xa
set lastName=%%~Na
)
)
)
rem Copy last set
ECHO copy "!lastName!!baseExt!" "C:\dest\dir\!baseName!!baseExt!"
Test the program and remove ECHO commands if it works as you want.