DOS Compare File Name

Hello,

Can someone help me,  

I’m having 2  files named the same way but having  the  date stamp and second stamp at the end ( YYYY-MM-DD HH-MM-SS)

Exemple : PDF Flash Color Daily Sales Flash2013-01-08 08.32.41.326.pdf  
    PDF Flash Color Daily Sales Flash2013-01-08 08.45.41.326.pdf



And I would like to ensure to copy only the most resent one. How can I do that ?

This need to be done in batch.

Thanks a lot
youpaAsked:
Who is Participating?
 
Bill PrewConnect With a Mentor Commented:
Here's a slightly different variation, that sorts the matching files in reverse order so that once it copies the latest one it leaves the loop. Small gain in performance, and if there really are just two files doesn't matter a lot, but wanted to share it just as a slight alternate approach.

@echo off
setlocal

set BaseDir=C:\Source
set DestDir=C:\Target
set Filename=PDF Flash Color Daily Sales Flash*.pdf

for /F "tokens=*" %%F in ('dir /B /O-N "%BaseDir%\%Filename%"') do (
  copy "%BaseDir%\%%~F" "%DestDir%"
  goto :CopyDone
)
:CopyDone

Open in new window

~bp
0
 
oBdACommented:
Since you have a sensible naming convention (that is, yyyymmdd instead of mmddyyyy), you can just use a regular directory sorting and pick the last one. The script below is in test mode and will only display the copy command; remove the uppercase ECHO in front of "copy" to run it for real:
@echo off
setlocal
set SourceFolder=C:\Source
set TargetFolder=C:\Target
set Prefix=PDF Flash Color Daily Sales Flash
for /f "delims=" %%a in ('dir /b /o:n "%SourceFolder%\%Prefix%*.pdf"') do set LatestFile=%%a
echo Latest file: %LatestFile%
ECHO copy "%SourceFolder%\%LatestFile%" "%TargetFolder%"

Open in new window

If the actual time stamps of the files are correct, you could use those, too, by changing "/o:n" to "/o:d" in line 6.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.