Перемещать файлы которые старше 15 дней

Не на что не притендую, просто может кому то пригодиться, а то тут задача прилетела.
Создал скрипт который будет перемещать файлы, которые старше 15 дней, в другую папку.
Просто создайте ps1 файл.
Настройте задание в планировщике задач (Task Scheduler) Windows для запуска этого BAT файла раз в 15 дней:

1) Откройте "Планировщик задач".

2) Создайте новую задачу.

3) В разделе "Триггеры" добавьте новый триггер с расписанием "Каждые 15 дней".

4) В разделе "Действия" добавьте новое действие "Запустить программу" и укажите путь к вашему ps1 файлу.

5) Сохраните задачу.

Сам файл.

# Определяем исходную папку, целевую папку и путь к файлу журнала

$source = "D:\Pavel\test"

$destination = "D:\Pavel\servers"

$log = "D:\Pavel\move_log.csv"

# Перемещаем файлы старше 15 дней из исходной папки в целевую папку, сохраняя структуру папок

Get-ChildItem -Path $source -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-15))} | ForEach-Object {

$destPath = $_.FullName -replace [regex]::Escape($source), $destination

$destFolder = Split-Path $destPath -Parent

if (!(Test-Path -Path $destFolder)) {

New-Item -ItemType Directory -Path $destFolder -Force

}

Move-Item -Path $_.FullName -Destination $destPath -Force

}

# Добавляем заголовки в журнал

Add-Content -Path $log -Value "Source, Destination, Date Moved"

# Добавляем записи о перемещенных файлах в журнал

Get-ChildItem -Path $destination -Recurse | ForEach-Object {

$sourcePath = $_.FullName -replace [regex]::Escape($destination), $source

$logData = $sourcePath + "," + $_.FullName + "," + (Get-Date).ToString('yyyy-MM-dd')

Add-Content -Path $log -Value $logData

}