Получить последнюю созданную команду каталога batch
Как я могу получить новую вложенную папку в каталоге?
Мне нужно это в команде MKLINK /D.
Спасибо
Ответ 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%
Ответ 2
Некоторое улучшение для имен dir с пробелами
FOR /F " tokens=*" %%i IN ('dir /b /ad-h /od') DO (SET a=%%i)
теперь вы получаете a = данные приложения вместо a = приложение
Примечание: обратите внимание на пространство перед "токенами"