How can i get newest subfolder in directory ?
I need it in MKLINK /D
command.
Thanks
How can i get newest subfolder in directory ?
I need it in MKLINK /D
command.
Thanks
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET a=%%i echo Most recent subfolder: %a%
(%i
for windows 10)
/b
is for bare format/ad-h
only directories, but not the hidden onest:c
means to use the creation date for sorting (use t:w
for last write date)/od
sort oldest firstfor /F
executes the command and sets a to the directory name, the last one is the newest one.If you execute this directly on the command line (not in a batch file), use %
instead of %%
.
This works with the current directory - as @iesou pointed out you'll need to add the directory path after dir
if you need to use any other directory path.
Example with specified directory path:
FOR /F "delims=" %%i IN ('dir "c:\Program Files" /b /ad-h /t:c /od') DO SET a=%%i
To prevent going through all subfolders, you may change the sort order to have the most recent first (/o-d
) and exit the for loop after the first call:
@echo off FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /o-d') DO ( SET a=%%i GOTO :found ) echo No subfolder found goto :eof :found echo Most recent subfolder: %a%
Some improvement for dir names with spaces
FOR /F " tokens=*" %%i IN ('dir /b /ad-h /od') DO (SET a=%%i)
now you get a=Application Data instead of a=Application
Note: Pay attention to the space in front of "tokens"