Показать сообщение отдельно
Старый 27.03.2006, 01:16     # 19
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 380

Borland - Гад и сволочь
Цитата:
FAndry:
Сравнить 2 файла в разных папках
Код:
fc File.1 File.2
, где File.x - имя файла в текущей папке либо с указанием полного пути.
Цитата:
FAndry:
Если файлы отличаются: Скопировать новый файл в папку бекапа с новым именем (формат имени файла: текущие <ДАТАВРЕМЯ>, расширение остается прежним.
Код:
If ERRORLEVEL 1 Copy File.1 x:\Backup_folder\File%DATE%.1
Аналогично %DATE% можно добавить и %TIME%, но, для того, чтобы оно нормально работало, необходимо в региональных настройках убрать (или заменить на что-то приемлемое, например на "_") разделитель часов с минутами и секундами (по умолчанию - двоеточие; использование этого символа в имени файла недопустимо).
Комментарий Модератора:
Borland:
Или воспользоваться "конструкцией" %DTSTRING%
Цитата:
FAndry:
2. Анализ файлов в папке бекапа и удаления самых устаревших по дате изменения/создания файлов, так чтобы общее числол файлов в папке бекапа не превышало 60 штук!
Насколько я помню, средства для реализации этой операции в командном процессоре и стандартных консольных прогах винды отсутствуют. Придётся привлекать другие средства (например - Windows Scripting Host или тот же nncron)
Комментарий Модератора:
Borland:
Если в имени присутствует вышеупомянутый %DTSTRING%, то анализ даты/времени можно исключить, переформулировав задачу как "удалить все бэкапы за исключением 60 последних"
Код:
pushd "x:\Backup_folder\"
for /f %%A in ('dir /B /A:-D /O:-N file*^|more +60') do del /q "%%~A"
popd
Данный код удаляет все (кроме 60 самых новых) файлы в папке с резервными копиями, соответствующие маске "file*", для которых хвост имени формировался при помощи %DTSTRING"
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий


Последний раз редактировалось Borland; 15.01.2014 в 21:32. Причина: комменты
Borland вне форума