|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск самого свежего файла |
|
CMD/BAT - Поиск самого свежего файла
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать Ребят, помогите написать bat файл, который бы искал самый свежие файл каждого расширения в указанной директории. То есть в папке Files находится много файлов разных расширений, например .doc, .excel, .txt и т.д. и таких файлов несколько. Так вот нужно найти самый свежий файл из .doc, .excel и так по всем расширениям. Вот бат файл, который ищет просто самый свежий файл, но как сделать, чтобы искал по каждому расширению не знаю. Если кто нибудь сделает, буду очень благодарен.
@echo off for /f "delims=" %%i in ('dir C:\Files\ /B /A-D /OD /TA') do (set file=%%i) echo %file% pause |
|
Отправлено: 23:21, 25-05-2016 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Ребята!
Подскажите пожалуйста, как в этом коде использовать найденный файл для копирования в другую директорию. @echo off setlocal enableextensions enabledelayedexpansion set sSourceFolder=%~1 if defined sSourceFolder ( for %%i in ("%sSourceFolder%\*.txt") do set sFoundExt%%~xi=%%~xi for /f "usebackq tokens=2 delims==" %%i in (`set sFoundExt`) do for /f "usebackq delims=" %%j in (`2^>nul dir /b /a:-d /o:d /t:c "%sSourceFolder%\*%%~i"`) do set sFoundLastFileExt%%~i=%%j for /f "usebackq tokens=2 delims==" %%i in (`set sFoundLastFileExt`) do echo %%~i for /f "usebackq tokens=3 delims==" %%i in (`set sFoundLastFileExt`) do copy %%~i d:\alfa.txt ) else ( echo Usage: %~nx0 ^<Source folder^> exit /b 1 ) endlocal exit /b 1) найти самый свежий файл с расширением txt в директории 2) скопировать найденный файл в другую директорию с переименованием в alfa.txt 3) если в директории назначения уже существует файл alfa.txt заменить его без подтверждения. куда подставить txt для 1 пункта я понял, на 2 пункте сдулся, с 3 могу разобраться после того как узнаю имя/переменную в пункте 2. |
Последний раз редактировалось jenia_ov, 23-12-2016 в 09:13. Причина: пояснение Отправлено: 07:36, 23-12-2016 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать jenia_ov, не тот тэг используете. Надо [code], а не [spoiler].
Цитата jenia_ov:
Цитата jenia_ov:
Цитата jenia_ov:
Вот пример для а) по дате создания и б) папки задаются параметрами: Скрытый текст
@echo off setlocal enableextensions enabledelayedexpansion set sSourceFolder=%~1 set sDestFolder=%~2 set sNewFileName=alfa.txt if defined sSourceFolder ( if defined sDestFolder ( if exist "%sSourceFolder%\." ( if exist "%sDestFolder%\." ( for /f "usebackq delims=" %%i in ( `2^>nul dir /b /a:-d /o:d /t:c "%sSourceFolder%\*.txt"` ) do if not defined sFoundFile set sFoundFile=%%i if defined sFoundFile ( >nul copy /y "%sSourceFolder%\!sFoundFile!" "%sDestFolder%\%sNewFileName%" ) else ( echo No txt files found. exit /b 4 ) ) else ( echo Can't find destination folder [%sDestFolder%]. exit /b 3 ) ) else ( echo Can't find source folder [%sSourceFolder%]. exit /b 2 ) ) else ( echo Usage: %~nx0 ^<Source folder^> ^<Destination folder^> exit /b 1 ) ) else ( echo Usage: %~nx0 ^<Source folder^> ^<Destination folder^> exit /b 1 ) endlocal exit /b 0 |
|||
Отправлено: 08:40, 23-12-2016 | #12 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Iska, файл по дате создания, директории постоянные и неизменные, поэтому могу задаваться и в коде.
Ваш код полностью удовлетворяет потребности! Низкий Вам поклон! |
Отправлено: 08:47, 23-12-2016 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:52, 23-12-2016 | #14 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Iska, прошу прощения, сразу не обратил внимание, копируется самый старый файл почему-то.
Да, так и сделал, сначала кинулся ярлык сделал и пути прописал, потом только в код вписал каталоги. |
Отправлено: 08:53, 23-12-2016 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:56, 23-12-2016 | #16 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Iska, Огромное спасибо, все отлично!
|
Отправлено: 09:01, 23-12-2016 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать jenia_ov, ну, Вы таки попроверяйте всё ж. Может, окажется, что нужна была не дата создания…
|
Отправлено: 09:14, 23-12-2016 | #18 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Iska,
Суть процесса - с сайта клиент банка сохраняется выписка по счету в txt файле, поскольку работа идет из браузера chrome - он сохраняет эту выписку в папку Загрузки, как и все что скачивается через него. С помощью этого батника, самый свежий по дате создания txt файл копируется в расшаренную папку на сервере с 1С откуда и осуществляется загрузка этого файла. Выписка из банка всегда с разным именем файла (подставляется дата выписки). А поскольку txt файлы на том компе больше никто не качает, то это решение более чем подходит. |
Отправлено: 09:32, 23-12-2016 | #19 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Цитата Iska:
но никак не получается соединить с кодом из этой темы так, чтобы из вложенных папок выбирался только самый последний созданный файл. |
|
Отправлено: 17:03, 16-08-2018 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Не работает скрипт копирования самого свежего файла по текущей дате | dark-------13 | Скриптовые языки администрирования Windows | 6 | 18-02-2016 08:42 | |
CMD/BAT - Копирование самого последнего измененного файла | Ua-life | Скриптовые языки администрирования Windows | 2 | 23-04-2015 18:37 | |
CMD/BAT - [решено] Поиск и копирование самого нового файла | V!RTuE | Скриптовые языки администрирования Windows | 1 | 05-02-2015 16:25 | |
CMD/BAT - Построчная перезапись файла и отправка его на адрес почты взятый внутри самого файла | JackL | Скриптовые языки администрирования Windows | 6 | 26-05-2013 12:51 | |
CMD/BAT - [решено] Переименование файла по данным из самого файла | dark-------13 | Скриптовые языки администрирования Windows | 11 | 21-04-2011 18:08 |
|