Powershell: Как удалить указанный файл формата c (только .xlsx) старше X дней - PullRequest
0 голосов
/ 01 апреля 2020

Я в настоящее время новичок в PowerShell, я хочу удалить .xlsx файлы старше X дней, используя Powershell. Я попробовал ниже

Get-ChildItem D:\temp | ? { $_.PSIsContainer -and $_.LastWriteTime -lt $timeLimit } | Remove-Item -WhatIf

Но указанная выше команда удалила все мои данные (включая C данные диска)

Пожалуйста, предложите модификацию или новую команду. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Вы, похоже, не фильтруете файлы xlsx в вашем коде. Файл xlsx не является папкой, поэтому я удалил это условие из вашего фильтра. $timelimit не определено в показанном коде, но должно иметь тип dateTime для возможности сравнения

Get-ChildItem d:\temp -filter "*.xlsx"| ? { $_.LastWriteTime -lt $timeLimit } | Remove-Item -WhatIf
0 голосов
/ 01 апреля 2020

Это должно сработать:

$timeLimit = 60 # Days
Get-ChildItem -Path "D:\temp" -Recurse -Include *.xlsx | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-$timeLimit)} | Remove-Item -WhatIf

Если это выдаст ожидаемый результат, вы можете удалить переключатель -WhatIf и попробовать.

...