내 문제는 Powershell입니다. 매우 큰 폴더가 있습니다. 내부자는 약 1 600 000 개의 하위 폴더입니다. 내 작업은 6 개월 이상 된 빈 폴더 나 파일을 모두 지우는 것입니다. 나는 foreach 문으로 루프를 작성하지만 파워 쉘이 시작하기 전에 연령대 소요 ->Powershell로 많은 폴더를 확인하십시오.
...
foreach ($item in Get-ChildItem -Path $rootPath -recurse -force | Where-Object -FilterScript { $_.LastWriteTime -lt $date })
{
# here comes a script which will erase the file when its older than 6 months
# here comes a script which will erase the folder if it's a folder AND does not have child items of its own
...
문제점 : 내 내부 메모리가 가득 (4 기가 바이트) 도착 그리고 나는 더 이상 제대로 작동하지 않습니다. 내 추측 : powershell은 모든 1 600 000 개의 폴더를로드하고 그 후에 만 필터를 시작합니다.
이것을 방지 할 수 있습니까?
감사합니다. 저는 더 작은 환경에서 테스트했습니다. (106 000 폴더) 원본 스케치에서 약 73 초가 걸렸습니다. modifikations (능률화)로 나는 단지 51 초를 필요로했다. 감사합니다. – user1660311
아, 내부 메모리 문제가 해결 된 것 같습니다 :) – user1660311