Поэтому в процессе создания резервных копий мне нужен пакетный скрипт, который позволил бы мне удалять файлы в указанном каталоге, которые старше, чем, скажем, на 3 дня. Этот сценарий будет установлен как запланированное задание для запуска в указанное время каждый день.
windows-server-2008-r2
batch-file
Chiggins
источник
источник
Ответы:
Если PowerShell является приемлемым (должно быть, так как он включен по умолчанию на Server 2008+), попробуйте это:
Соус здесь .
источник
Remove-Item $File -whatif | out-null
. Для запуска в качестве задачи планирования в задании должен быть указан полный путь к powershell.exe с вашим сценарием в качестве аргумента.Где указан
-5
возраст файлов, которые вы хотите удалить (в данном случае 5 дней или более). Этот скрипт удаляет.rar
файлы - удалите,-m *.rar
если вы хотите удалить любой тип файла.источник
Если вы настаиваете на использовании пакетных файлов, Robocopy.exe - ваш ответ. Это быстрый (многопоточный) и очень надежный. Для вашего сценария вы можете использовать следующее в качестве руководства:
Есть длинный список опций, пожалуйста, сделайте robocopy /? чтобы увидеть их всех. Вы даже можете использовать его для создания инкрементных резервных копий, планирования, создания профилей резервного копирования и т. Д.
источник
Мне нравится использовать DelEn.exe для этого.
Delen - DELete ENhanced - это усовершенствованная версия DEL. Он поддерживает расширенные шаблоны и родительские каталоги, а также фильтры даты, времени и размера. Файлы могут быть исключены из удаления.
источник
Вы можете посмотреть на DelAge32 Хорста Шеффера:
http://home.mnet-online.de/horst.muc/wbat32.htm#top
Ваша команда может быть такой простой, как:
У меня эта команда работает как запланированная задача.
источник
Это сценарий PowerShell, который я написал, чтобы делать то, что вы хотите - он тоже делает немного больше. Я использую его для очистки журналов и других временных файлов.
продувка-дем-logs.cmd
purgelogs.ps1:
источник
Это не будет работать для удаленных компьютеров. Администраторы должны управлять несколькими компьютерами. Ниже приведен скрипт, который можно использовать для удаления папок на нескольких удаленных компьютерах без необходимости входа в них.
Ниже скрипт удалит папки старше 15 дней. Вы можете изменить параметр $ days.
D $ \ Program Files (x86) \ Research In Motion \ BlackBerry Enterprise Server \ Logs - это UNC-путь для папки Blackberry Log. Вы можете изменить каталог, в котором расположены ваши журналы / папки.
Перечислите все имена ваших серверов в файле servers.txt, и он должен находиться в том же каталоге, что и этот скрипт.
Сохраните скрипт как .ps1 и запустите его. Вы можете запланировать это через пакетный файл. Таким образом, вам нужно добавить команду Изменить каталог в начале скрипта.
Радоваться, веселиться.
источник
В качестве альтернативного подхода: вместо того, чтобы полагаться на файловую систему для получения времени создания файла (и попадания в одни и те же файлы в течение нескольких дней, пока не истечет срок их действия), вы можете добавить файл в собственный индекс во время создания. Индекс может потенциально быть таким же простым, как файл, названный в честь даты создания, хранящийся в известном месте, с файлом в каждой строке.
Если у вас есть многопоточное / многопроцессорное приложение, создающее файлы, то вы, возможно, захотите, чтобы ваш индекс обрабатывался более изощренным способом.
Преимущество состоит в том, что у вас всегда есть относительно простой список файлов, созданный в определенный день, который вы можете перебирать, вместо того, чтобы спрашивать файловую систему снова и снова о деталях.
(Это будет зависеть от приложения и создания файла, управляемого вами, а не третьей стороной).
источник