Перечислите элементы в каталоге старше определенного возраста, затем удалите их - PullRequest
0 голосов
/ 31 января 2019

Я уверен, что упустил что-то очевидное, но прошло уже много времени с тех пор, как мне нужно было использовать 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 

Но все, что это делает, это перечисляет элементы, а не удаляет их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...