четверг, 4 мая 2017 г.

PowerShell. Удаляем файлы старше 7 дней по маске.

Удаляем файлы старше 7 дней по маске.






#----- получаем текущую дату и пихаем в переменную ----#
$Now = Get-Date
#----- задаем количество дней старше которых файлы будут удаляться ----#
$Days = "7"
#----- задаем папку которая будет чиститься ----#
$TargetFolder = "C:\Folder\Logs"
#----- вот тут самое интересное - задаем маску, или просто расширение ----#
#----- например файлы с датой в имени MOWR22_20170131.log ----#
$Extension = "MOWR22_*.log"
#----- устанавливаем дату, после которой будут удаляться файлы ---#
$LastWrite = $Now.AddDays(-$Days)
#----- получаем список файлов. Если не надо рекурсии то убираем соотв. параметр ---#
#----- рекурсия отвечает за обработку подпапок ---#
$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where{$_.LastWriteTime -le "$LastWrite"}
#----- в цикле вербозно удаляем все полученные файлы ---#
foreach ($File in $Files)
{
 if ($File -ne $NULL)
 {
  write-host "Deleting File $File" -ForegroundColor "DarkRed"
  Remove-Item $File.FullName | out-null
 }
 else
 {
  Write-Host "No more files to delete!" -foregroundcolor "Green"
 }
}

Комментариев нет:

Отправить комментарий