Solved

Finding the last modified file through DOS command

Posted on 2004-03-21
5
4,827 Views
Last Modified: 2011-09-20
Hello all,
I would like to know how to recieve the name of the file that was last modified through a DOS command. Let's say I have this case:
c:\folder\textfile-05.txt
c:\folder\textfile-12.txt
c:\folder\textfile-03.txt
c:\folder\textfile-43.txt

The number does not have anything to do with the modification date.
Anyway, let's say that in this example, the file at hand is 'textfile-03.txt'. What command do I write in order to get a result of 1 line i.e. 1 file that meats this criteria I am looking for...? The output should of course contain the file's name.
I would like to redirect the command's output to a file on the system. How do I do this, if the file&folder exists or not ...?

Thank-you.
0
Comment
Question by:liorde
  • 3
  • 2
5 Comments
 
LVL 10

Accepted Solution

by:
pbarrette earned 80 total points
ID: 10644026
Hi liorde,

Assuming that you are using WinNT/2K/XP, you can use this:
:: ----------EXAMPLE.BAT-----------
@ECHO OFF
FOR /F "DELIMS=" %%F IN ('DIR /B /A-D /OD /TW C:\FOLDER\textfile-??.txt') DO (
 SET FILE=%%F
)
ECHO Most recently modified file is:
ECHO %FILE%
ECHO %FILE% > X:\OutputPath\Results.txt
:: ----------EXAMPLE.BAT-----------

Hope this helps,
pb
0
 

Author Comment

by:liorde
ID: 10647344
Hi,
Thank-you for the reply.
Is this solution not good for WinME/9x ?

0
 
LVL 10

Expert Comment

by:pbarrette
ID: 10649576
Hi Liorde,

No. This answer will only work for WinNT/2K/XP.

This is because Win9x/ME does not have the "FOR /F" option which allows us to parse the output of a command.

pb
0
 

Author Comment

by:liorde
ID: 10655778
Thank-you for the enhancement.
It was very important for me to know this.
Is there a solution that will work under Win9x/Me ...?

Thanks again.
0
 
LVL 10

Expert Comment

by:pbarrette
ID: 10660168
Hi Liorde,

If you need this to work in Win9x, you should have a look here:
http://www.ericphelps.com/batch/samples/recent.txt

The relevent contents of that link are as follows:
------------------------------------
@echo off
dir /o-d /a-d *.* | find "-" | find ":" > en#er.bat
fc en#er.bat nul /lb1 /n |date|find " 1: " > en#er.bat
echo copy /y %%5.%%6 recent.txt > enter.bat
call en#er.bat
del en?er.bat>nul
cls
------------------------------------

This will copy the most recently modified file to "recent.txt".

It doesn't set the filename as a variable, but it's a decent starting point.

Hope this helps,
pb
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

One of my most closely kept secrets is revealed in this discussion How to output text on the same line This question was recently posted in EE by Simon336697 (http://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Batch/Q_2459…
Being a system administrator some time we require to do things remotely, one of them is installing software. Here I am going to tell you how to install software through wmic (Windows management instrument console). I am not at all saying that this i…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now