나는 do while 루프를 사용하여 여러 디렉토리에서 오래된 파일을 제거하려고합니다 (가장 오래된 파일부터 시작). 하나가 남아있을 때까지 프로그램을 종료해야합니다. 런타임에 디렉토리에 둘 이상의 파일이있는 경우에만 프로그램을 실행해야합니다. 여기 Powershell 가장 오래된 항목 제거
내 환경 :- 탑 폴더
- 폴더 1
- 폴더 2
- 등 폴더 1, 폴더 2 등이에서
하나의 파일이어야합니다. 스크립트는 거기에 하나의 파일 만 있으면 모든 것을 지우고 아무것도 삭제하지 않아야합니다.
나는 반 완성 다음 코드를 사용하여이있다 : 정확 하나 개 이상의 파일 존재,이 때
$basedir = "C:\Test"
Set-Location -Path C:\Test
$a = Get-ChildItem -recurse $basedir
if ($a.Count -gt 1) {
do
{
$a | Sort-Object LastWriteTime -Descending | Select-Object -Last 1 | remove-item
}
while
(
$a.Count -gt 1
)
}
- 그것은 단지 실행됩니다.
- 가장 오래된 파일을 올바르게 삭제하지만 디렉토리를 다시 검사하지 않고 동일한 파일을 삭제하려고합니다.
- 저는이 시점에서 같은 파일을 반복해서 삭제하려고 시도하는 대신 파일을 삭제 한 후에 루프를 다시 실행하는 데 도움이 필요합니다.
도움을 주셔서 감사 드리며, 이전에 답변을드립니다. 사과드립니다. 나는 많은 수색을했지만 내 상황으로 뭔가를 찾을 수 없었다.
브래드
나는 제안 된대로 다시 형식화했습니다! – MenthoL