获取上次创建的目录批处理命令

时间:2012-05-09 15:38:06

标签: batch-file

如何在目录中获取最新的子文件夹?
我需要MKLINK /D命令。

谢谢

2 个答案:

答案 0 :(得分:48)

FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET a=%%i
echo Most recent subfolder: %a%

(Windows 10的%i

  • /b适用于裸格式
  • /ad-h只有目录,但不是隐藏目录
  • t:c表示使用创建日期进行排序(使用t:w作为上次写入日期)
  • /od排在最前面的
  • for /F执行命令并设置a到目录名,最后一个是最新的。

如果直接在命令行上执行此操作(而不是在批处理文件中),请使用%代替%%

这适用于当前目录 - 因为@iesou指出如果需要使用任何其他目录路径,则需要在dir之后添加目录路径。

指定目录路径的示例:

FOR /F "delims=" %%i IN ('dir "c:\Program Files" /b /ad-h /t:c /od') DO SET a=%%i

要防止浏览所有子文件夹,您可以更改排序顺序以使最新的第一个(/o-d)并在第一次调用后退出for循环:

@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%

答案 1 :(得分:3)

带空格的目录名称的一些改进

FOR /F " tokens=*" %%i IN ('dir /b /ad-h /od') DO (SET a=%%i)  

现在你得到一个= Application Data而不是a = Application
注意:注意“代币”前面的空间