К содержимому
Василий
← Все записи

Очистка файлов в папке (+пустые папки)

Папка загрузки постоянно растет, но я решил для себя забирать от туда важные документы, а то что осталось — подчищать автоматом.
Для этого определил для себя 40 дней, а всё что старше — удаляю.
PS скрипт
—————-

$Path = "C:\Users\yavasilek\Downloads"	#путь к папке
$Days = 45								#сколько дней
$cutoff = (Get-Date).AddDays(-$Days)

# 1) Удаляем файлы старше $Days (включая скрытые/системные)
Get-ChildItem -Path $Path -Recurse -File -Force |
  Where-Object { $_.LastWriteTime -lt $cutoff } |
  Remove-Item -Force -ErrorAction SilentlyContinue

# 2) Многократно подчищаем пустые каталоги, идя от самых глубоких
Get-ChildItem -Path $Path -Recurse -Directory -Force |
  Sort-Object { $_.FullName.Split('\').Count } -Descending |
  ForEach-Object {
    if (-not (Get-ChildItem -LiteralPath $_.FullName -Force)) {
      Remove-Item -LiteralPath $_.FullName -Force -ErrorAction SilentlyContinue
    }
  }

—————-
Сохраняем в файл cleanup_downloads.ps1
Далее в планировщике создаем задачу на запуск в нужное время программы powershell с аргументом

-ExecutionPolicy Bypass -File "c:\Users\yavasilek\Documents\cleanup_downloads.ps1"

Пусть к скрипту указываем свой

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *