create file date time windows

Find the latest created file in a directory:
The below command would print the files in the order of creation date & time. In this list the file that is created very recently would be displayed in the last position.

dir /A:-D /T:C /O:D
Example:

C:\>dir /A:-D /T:C /O:D
02/06/2012  07:38 PM                 4 4.txt
02/06/2012  07:39 PM                 0 5.txt
02/06/2012  10:45 PM                13 10.txt
02/06/2012  10:47 PM                13 newfile.t
02/11/2012  08:24 PM                83 2.bat
02/11/2012  08:26 PM             5,219 data.txt
02/11/2012  08:27 PM             5,219 data2.txt
02/12/2012  11:28 PM                98 3.bat
02/13/2012  10:47 AM               131 echo.bat
LVL 13
gsgiAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

duncanb7Commented:
Please take a look at the following code for  DOS command batch file and for reference only ,and it is NOT fully tested

Duncan
@echo off
dir /A:-D /T:C /O:D |find ":">junk.txt
for /f "tokens=1 delims=" %%a in ('type junk.txt') do set newest=%%a
if not "%newest%"=="" echo Latest created file is "%newest%"
del junk.txt

Open in new window

0
Gerwin Jansen, EE MVETopic Advisor Commented:
Do you have the tail command available? If so you can do this:
dir /A:-D /T:C /O:D | findstr /r /c:"^[0-9]" | tail -1

Open in new window

The findstr command will filter only lines starting with a number and tail -1 will show you only the last line of that filtered output.

Tail is part of a set of WIn32 ported UNIX tools: http://unxutils.sourceforge.net/
0
gsgiAuthor Commented:
Thanks Everyone!!!!
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

Gerwin Jansen, EE MVETopic Advisor Commented:
@gsgi - Did you try the first comment that you've chosen as an answer? I did and I got this as reply:

Latest created file is "07/19/14  09:38 PM                 0 junk.txt"

So I believe you may have chosen the wrong answer, you can ask for attention using the "Request Attention" button above.
0
Gerwin Jansen, EE MVETopic Advisor Commented:
If you want to use the first comment as a solution, you need to change the following to make it work:

@echo off
dir /A:-D /T:C /O:D |find ":">%TEMP%\junk.txt
for /f "tokens=1 delims=" %%a in ('type %TEMP%\junk.txt') do set newest=%%a
if not "%newest%"=="" echo Latest created file is "%newest%"
del %TEMP%\junk.txt

Open in new window


The temporary file junk.txt is now moved to %TEMP% - so no target for the script above. If you move the script above to %TEMP% as well and run it from there it is working.

So:

C:\>%TEMP%\findfile.cmd

would give you:

Latest created file is "02/13/2012  10:47 AM               131 echo.bat"

(assuming that your %TEMP% is not equal to C:\)
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
gsgiAuthor Commented:
I didn't because I could read his logic; I assume his .bat file is fixable.  Is there something about his bat file that would not be fixable?   I do not have the tail command.  I try to solve for solutions using native commands when possible.

If we put junk.txt somewhere else does it work?  His .bat file makes a junk.txt file which becomes the latest file.  Here I put junk.txt in c:\

@echo off
dir /A:-D /T:C /O:D |find ":"> c:\junk.txt
for /f "tokens=1 delims=" %%a in ('type c:\junk.txt') do set newest=%%a
if not "%newest%"=="" echo Latest created file is "%newest%"
del junk.txt

The other way to fix this is to have it cycle through all but the last file in the listing.

-gsgi
0
Gerwin Jansen, EE MVETopic Advisor Commented:
See my comment above, all needed corrections are there. I tested and it worked.
0
gsgiAuthor Commented:
Would this work - I am not a .bat file scripter so my syntax is probably wrong...  By using temporary for the last line of the listing and setting newest to temporary each time through the loop, newest becomes the 2nd to last filename in the listing, so we do not grab junk.txt

@echo off
dir /A:-D /T:C /O:D |find ":">junk.txt
set temporary=""
for /f "tokens=1 delims=" %%a in ('type junk.txt') do {set newest=temporary set temporary=%%aa}
if not "%newest%"=="" echo Latest created file is "%newest%"
del junk.txt

-gsgi
0
Gerwin Jansen, EE MVETopic Advisor Commented:
The idea is good, with some more modifications, this is working as long as you don't have the script in the folder where you run it:
@echo off
SETLOCAL EnableDelayedExpansion
dir /A:-D /T:C /O:D |find ":">junk.txt
set temporary=""
for /f "tokens=1 delims=" %%a in ('type junk.txt') do set newest=!temporary! && set temporary=%%a
if not "%newest%"=="" echo Latest created file is "%newest%"
del junk.txt

Open in new window


but my suggestion above in http:#a40206573 is working as well.
0
gsgiAuthor Commented:
Thanks for participating in this question.  I originally selected duncanb7 as the best answer because I could follow his thinking and his answer used no extra tools or utilities.  Gerwin Jansen wrote to me asking why I would select an answer that did not work as the best solution and he fixed the solution so that it works.  To properly represent correct code in the EE database, I am changing the best answer to Gerwin Jansen's fix for the code originally offered by duncanb7.  Thanks, gsgi
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Legacy OS

From novice to tech pro — start learning today.

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.