2013-10-18 1 views
0

30 일 이전의 모든 파일을 포함 (제거)하고 싶습니다. 또한 가장 오래된 파일을 보존하고 싶습니다.powershell에 파일 포함/제외 (해당 연령)

$Exclusion = (Get-ChildItem "$PATH" -Recurse | where {$_.Name -like "*.conf"} | Sort-Object CreationTime -Descending | Select-Object -Last 1).name 
Get-ChildItem "\\$PATH" -Recurse | Where {$_.creationtime -lt (Get-Date).AddDays(-30)} | Remove-Item -Force -Include *.conf -Exclude $Exclusion 

이것은 작동하지 않습니다. 내 가장 오래된 파일도 삭제됩니다. 내 오류는 어디에 있습니까? 아니면 모두 포함 된 경우 포함 및 제외 할 수 있습니까?

답변

1

왜 개체를 연령대 기준으로 정렬하지 않고 -skip 1 (가장 오래된 파일)으로 개체를 정렬하지 않습니까?

이 코드는 작동해야한다고 생각합니다.

Get-ChildItem "\\$PATH" -Recurse | Where {$_.creationtime -lt (Get-Date).AddDays(-30)} |Sort-Object creationtime -desc | select-object -skip 1 | Remove-Item -Force -Include *.conf -Exclude $Exclusion 

나는 테스트하기 위해 여기에 파워 쉘이 없습니다.

+0

나는 모든 나무를 위해 숲을 놓쳤다. 단순한. 실력 있는! 고맙습니다! – XXInvidiaXX

+0

select-object-first 30이며 완벽합니다. – XXInvidiaXX