如何获取目录中最新的子文件夹?
我需要在MKLINK /D
命令中使用它。
谢谢。
如何获取目录中最新的子文件夹?
我需要在MKLINK /D
命令中使用它。
谢谢。
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET a=%%i
echo Most recent subfolder: %a%
(%i
适用于 Windows 10)
/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%
dir
和 /b
之后,你需要输入根目录。如果是批处理文件的一部分,则不需要使用 echo
命令。你可以直接使用 %a%
变量,因为它最后一次被设置的值是最新的目录。 - iesouFOR /F %%i
改为 FOR /F "delims=" %%i
以防止分割目录名称。 - marapet对于有空格的目录名称,有一些改进
FOR /F " tokens=*" %%i IN ('dir /b /ad-h /od') DO (SET a=%%i)