Я уверен, что упустил что-то очевидное, но прошло уже много времени с тех пор, как мне нужно было использовать PowerShell (примечание, это версия 2).
Мне нужен базовый скрипт, который удаляет файлы поверхопределенный возраст (3 дня).У меня есть следующее:
$logDirectory = "C:\logs\"
$days = (Get-Date).AddDays(-3)
# Delete files older than the $days
Get-ChildItem -Path $logDirectory -Recurse |
Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt $days } |
%{Write-Host File Found: $_.fullname $_.LastWriteTime}
Get-ChildItem -Path $logDirectory -Recurse |
Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt $days } |
Remove-Item -Force
Это работает, но если я объединю два, это не так.И я уверен, что должен быть более аккуратный способ сделать это, где я могу выписать список файлов, а затем удалить их.Что-то вроде:
Get-ChildItem -Path $logDirectory -Recurse |
Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt $days } |
%{Write-Host File Found: $_.fullname $_.LastWriteTime} |
Remove-Item -Force
Но все, что это делает, это перечисляет элементы, а не удаляет их.