Serhi84
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Народ, здравствуйте. Задача, в процессе которой возникли проблемы с её решением - есть папка, содержащая файлы и подпапки с файлами. Необходимо выявить файлы, дата модификации которых не больше определенной даты. В качестве параметров передавать: 1) имя каталога с файлами, в котором нужно производить поиск 2) признак поиска в подпапках(например 1 - просматривать файлы в подпапках, 0 - анализировать только файлы в корне исходной папки, не учитывая подпапок) 3) количество дней (не больше 31), которое вычитается из текущей даты. Полученная дата сравнивается с датой создания/модификации файлов в папке. Если существуют файлы старее полученной даты - высылается уведомление на email. 4). маска для поиска файлов (например *.txt - анализируем на старость только текстовые файлы). передать параметры при запуске программы не составит труда. Отправку на email сделал vbs-кой и буду вызывать её из bat`ника. Вычитание из текущей даты количества дней тоже в принципе представляю как делать (немножко изменить код в вышеперечисленных сообщениях где получали текущую дату -1 день). НО!!!!! Когда получаю дату создания/модификации файла - результат выходит вместе со временем For %%i In (c:\scr\*) Do SET create=%%~ti ECHO %create% То есть мне нужно из возвращаемого значения как то выделить только дату, чтобы я мог сравнить это значение с другой датой. Вот в этом и загвоздка. Без времени данную строку не получить, функций для возврата части строки тоже нет. Не представляю как это сделать. И еще вопрос - как сравнить 2 даты? Что-то типа IF "30.01.2009" > "30.01.2008" не срабатывает. Хотел писать все на vbscript, но не знаю как там внутри скрипта описать параметры для запуска.... Вообще можно ли такую задачу реализовать с помощью vbscript или bat-файла ? либо придется искать что-то другое.... Добавлено: Такс...с первой частью разобрался. Сначала вывожу дату/время модификации файлов в текстовый файл , а потом считываю его построчно CD c:\scr\ for /F "tokens=1* delims= " %%i in (dates.txt) do @echo %%i Остается маленький вопрос - как сравнить 2 даты? И еще - можно ли результат выполнения команды For %%i In (c:\scr\*) Do ECHO %%~ti писать не в текстовый файл и из него считывать, а сразу передавать данные на вход команды for /F "tokens=1* delims= " %%i in (??? что тогда будет здесь ???) do @echo %%i |