Мне нужно запустить сценарий, который скопирует файл из одного каталога в другой в зависимости от даты его изменения. В основном у меня есть база данных, сбрасываемая в каталог ежедневно, и я хочу иметь возможность копировать базу данных с первого числа каждого месяца в другой каталог, чтобы я мог удалить все остальные файлы в папке.
Кто-нибудь может мне помочь?
Это сценарий, который я хотел бы запустить в Windows Server 2003.
Заранее спасибо.
Используйте Robocopy, это встроенная функция операционной системы, синтаксис должен быть примерно таким.
Robocopy «\ source» «\ destination» / mir / mon: 1 / mot: 1 / R: 3 / W: 10 / COPY: DAT /log:c:\tools\robolog.txt / NDL / NP / Z
создайте и сохраните это как пакетный файл, чтобы запланированное задание запускало его 23 часа в день, а затем процесс завершил и перезапустил его.
вот ссылка на technet для всех команд и функций http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx
Вы можете запланировать запуск командного файла на первое число каждого месяца для удаления файлов старше 1 дня (через delage32 из http://home.mnet-online.de/horst.muc/wcon.htm) и скопируйте оставшийся файл в другую папку.
Powershell также может это легко сделать. Вот очищенный фрагмент скрипта, который я использую:
$BaseDirectory = C:\temp
$SelectionFilter = "*.tmp"
$intFileAge = 7
$DueDate = (get-date).addDays(-$intFileAge)
# Create an array of files where CreationDate is before DueDate
# and it's not a directory
$arrFiles = get-childitem -recurse -path $BaseDirectory -Filter $SelectionFilter | `
Where-object {$_.CreationTime -le $DueDate -and $_.psIsContainer -ne $true}
Foreach ($oldfile in $arrFiles) {
Copy-Item $oldFile.fullName -destination c:\elsewhere\
}
«Глагол» сценария может быть легко перемещен или удален.