@ProNoob

Как найти самый новый файл через bat?

Здравствуйте, нужно с помощью bat определить самый новый файл или последний измененный ( в моем случаю разницы не будет)
Нагуглил такую вот команду, которая показывает самый свежий файл, но не разобрался как она работает.
for /f %%i in ('dir /b /T:A /A:-D /O:-D *.xls')
  • Вопрос задан
  • 5749 просмотров
Пригласить эксперта
Ответы на вопрос 3
longclaps
@longclaps
dir /o:-d
и читай первую строку. А хочешь последнюю -
dir /o:d
Ответ написан
Комментировать
@res2001
Developer, ex-admin
В вашем примере не законченная команда. В окончательном виде будет выглядеть примерно так:
set "filename="
for /f %%i in ('dir /b /T:A /A:-D /O:-D *.xls') do (
set "filename=%%~i"
goto:finloop
)
:finloop
echo.%filename%

Все построено на умении команды dir сортировать файлы с помощью опций /o и /t. А дальше просто берется первая строка вывода dir, сохраняется в переменную, в конце переменная выводится на экран.
Ответ написан
Комментировать
Добрый день.
частично в данную тему. Есть папка, в ней разные Эксель файлы, задача скопировать самый свежий по дате обновления, скопировать в другую папку и добавить название, что бы создавалась история.
Есть рабочий сетап, но он берет верный месяц, но дату и время не учитывает, т.е. если есть файлы от 4 числа и 10, то скопирует 4 число.
Где ошибка:
@ECHO off
setlocal
CHCP 65001 
 
SET EXT=.xlsx
SET FOLDER=G:\localuser\Documents\13_Warehouse_report\Slots\test\
SET BACKUP_FOLDER=G:\localuser\Documents\13_Warehouse_report\Slots\
SET DATE=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%

for /F "delims=" %%A in ('DIR "%FOLDER%*%EXT%" /T:A /A:-D /B') DO SET NEW_FILE=%%~nA

copy "%FOLDER%%NEW_FILE%%EXT%" "%BACKUP_FOLDER%%NEW_FILE%_%DATE%%EXT%"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы