Ответ 1
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET a=%%i
echo Most recent subfolder: %a%
(%i
для окон 10)
-
/b
для голого формата -
/ad-h
только каталоги, но не скрытые -
t:c
означает использование даты создания для сортировки (используйтеt:w
для последней даты записи) -
/od
сортировать самые старые сначала -
for /F
выполняет команду и устанавливает имя каталога, последний из которых является самым новым.
Если вы выполните это непосредственно в командной строке (не в пакетном файле), используйте %
вместо %%
.
Это работает с текущим каталогом, так как @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%