Как переместить файлы по дате в другую папку

Рейтинг: 0Ответов: 1Опубликовано: 10.07.2023

Нужен скрипт PowerShell, который проверяет файлы в исходной папке и файлы, у которых дата изменения старше заданной в скрипте, переносит эти файлы в определенную сетевую папку. Сделал такой код, выдаёт ошибку связанную с LastWriteTime. Помогите исправить её.

$TargetFolder = "C:\PSTESTDEL" 
$Period = "-5" 
$CurrentDay = Get-Date
$ChDaysDel = $CurrentDay.AddMinutes($Period)
$DestPath = "C:\PSTESTREPLACE"
 
dir $TargetFolder | where LastWriteTime -gt (Get-Date).AddMinutes(-5) | cp -Destination "C:\PSTESTREPLACE"

Ответы

▲ 0Принят
$TargetFolder = "C:\PSTESTDEL"
$DestPath = "C:\PSTESTREPLACE"
$ChDaysDel = (Get-Date).AddMinutes(-5)

Get-childitem -Path $TargetFolder -recurse | where-object {$_.lastwritetime -lt ($ChDaysDel) -and -not $_.PSIsContainer} | mv -Destination $DestPath

Удалил лишние, на мой взгляд, переменные, а также дублирование расчета дат. Заменил cp на mv, потому что было копирование, а в задании написано - перенос.
Подсматривал здесь