Get last created directory batch command

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

How can i get newest subfolder in directory ?
I need it in MKLINK /D command.

Thanks

回答1:

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 ones
  • t:c means to use the creation date for sorting (use t:w for last write date)
  • /od sort oldest first
  • The for /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% 


回答2:

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"



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!