Чтобы указать количество каталогов в текущем пути:
Это должно указать вам правильное направление, вы можете запустить его, как сейчас, чтобы увидеть.
@echo off
:start
echo Press Enter when you want to see the new Foldername:
pause >nul
cls
for /f %%i in ('dir /b /ad /o-d') do set "newfolder=%%i" & goto reveal
:reveal
echo New Folder is "%newfolder%"
goto start
Все, что это делает, это сортирует по дате последнего изменения всех папок и отображает только последние. Все просто.
Вы также можете добавить счетчик, который покажет вам количество папок:
@echo off
:start
echo Press Enter when you want to see the new Foldername:
pause >nul
cls
for /f %%a in ('dir ^| findstr /i "Dir(s)"') do set count=%%a
for /f %%i in ('dir /b /ad /o-d') do set "newfolder=%%i" & goto reveal
:reveal
echo Number of folders: %count%
echo Latest Folder: "%newfolder%"
goto start
Или, если вы хотите увидеть полный путь к папке, а не просто новое имя, используйте %%~fi
:
@echo off
:start
echo Press Enter when you want to see the new Foldername:
pause >nul
cls
for /f %%a in ('dir ^| findstr /i "Dir(s)"') do set count=%%a
for /f %%i in ('dir /b /ad /o-d') do set "newfolder=%%~fi" & goto reveal
:reveal
echo Number of folders: %count%
echo Latest Folder: "%newfolder%"
goto start
А вот версия, которая не требует ввода данных пользователем, она обнаружит новую папку для вас.
@echo off
set newfold=
set oldfold=
:start
for /f %%i in ('dir /b /ad /o-d') do set "newfold=%%i" & goto reveal
:reveal
if not defined oldfold set "oldfold=%newfold%"
if not "%newfold%"=="%oldfold%" (
echo New Folder detected: %newfold%
set oldfold=%newfold%
)
timeout /t 3 /nobreak >nul
goto start