tags:

views:

428

answers:

2

Hey Guys, I need some help in getting the name of the most recent directory in a DOS script.

I have found some information on getting the most recent file which works but I cannot get this to work on directories.

For example,Here is my directory:

drwxr-xr-x 2 usrpm Domain Users 0 Jun 29 10:34 _200903_V20
drwxr-xr-x 2 usrpm Domain Users 0 Jun 29 10:35 _200904_V21
drwxr-xr-x 2 usrpm Domain Users 0 Jun 29 10:36 _200905_V22
drwxr-xr-x 2 usrpm Domain Users 0 Jun 29 10:38 _200906_V23

I need my script to return me the most recent directory (V23). I will then cd into that directory and copy a file out of it.

Thanks for any help!

+2  A: 

Here is a link to two scripts that find the most recent file. I think the second one already does exactly what you want, but you can modify one of them to do what you need, I'm pretty sure. I just googled "find most recent file dos batch file" and found it immediately.

Source link.

Edited to add a script that works with directories:

@echo off
for /f "delims=" %%x in ('dir /od /b *.*') do set recent=%%x
echo %recent%

Output:

C:\> recent.bat
recent.bat
C:\> mkdir newdir

C:\> recent.bat
newdir

Looks like it works here.

Carl Norum
Thanks Carl, I found this link earlier today and it works perfectly to find the most recent "file". But I have been trying to edit it to find the most recent "directory" and have not been able to get it to work.
Steve
Remove the `/a-d` from the second script, it works fine.
Carl Norum
Awesome thanks Carl, after I removed the /a-d this script worked as well. Thanks again!
Steve
+1  A: 

This should work:

for /f "usebackq delims=" %%i in (`dir /ad /o-d /b`) do (
    set LETESTDIR=%%i
    goto cont
)

:cont
echo %LETESTDIR%
Codism
Thanks Codism, that script worked!
Steve