Solved

Finding the last modified file through DOS command

Posted on 2004-03-21
5
4,893 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 Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

VALIDATING DATES One method of validating dates is to jam the date into the DATE command and see if it accepts it by examining the system's errorlevel value. A non-zero result indicates failure. A typical example might look something like the fol…
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…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

679 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