Нечто подобное должно помочь вам начать.
$path1 = "E:\Code\powershell\myPS\2018\Jun"
$path2 = "E:\Code\powershell\myPS\2018\Jun\compareTextFiles"
$path3 = "E:\Code\powershell\myPS\2018\May"
$allFiles = dir $path1, $path2, $path3 -File
$fileList = New-Item -type file file.list -Force
$keep = -7
$allFiles | foreach {
if ($_.LastAccessTime -le (Get-Date).AddDays($keep)) {
"$($_.FullName) is older than 7 days"
$_.FullName.ToString() | Out-File $fileList -Append
}
else {
"$($_.FullName) is new"
}
}
Вы можете добавить удаление в коде в IF Block
, если хотите, или проверить файл и сделать это позже.В вашем коде есть много проблем, которые являются основными для PowerShell, например: если вы используете Select-Object
, следующий конвейер получит только выбранное вами свойство.Вы попытались использовать LastAccessTime в более позднем канале, когда выбрали только свойство FullName.
Кроме того, перенаправление в файл и повторное использование конвейера выглядит очень грязно.