user2912230
user2912230

Reputation: 91

Batch file to find and run latest file in a dir with only partially known name?

How can I write in a simple Windows 7 compatible Batch file:

Where filename begins with "c:\my folder\myfile*.exe", run only the most recent one created.

For example, if I have 10 files in "c:\my folder\" and they are all similarly named myfile*.exe, and myfileBOB.exe was the last of this named file to be created - how to fish this out (the folder also contains other general files of different types) automatically by filename myfile* AND created date to execute?

Many thanks!

Upvotes: 0

Views: 2421

Answers (1)

dbenham
dbenham

Reputation: 130819

Sort the files by date ascending, and keep the last (most recent) one.

@echo off
setlocal
pushd "c:\my folder"
set "file="
for /f "eol=: delims=" %%F in ('dir /b /a-d /od myfile*.exe') do set "file=%%F"
if defined file "%file%"
popd

Or sort files by date descending, and break out of loop after first iteration.

@echo off
pushd "c:\my folder"
for /f "eol=: delims=" %%F in ('dir /b /a-d /o-d myfile*.exe') do "%%F"&goto :break
:break
popd

Upvotes: 4

Related Questions