Подтвердить что ты не робот

Получить последнюю созданную команду каталога batch

Как я могу получить новую вложенную папку в каталоге?
Мне нужно это в команде MKLINK /D.

Спасибо

4b9b3361

Ответ 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 = приложение
Примечание: обратите внимание на пространство перед "токенами"