2015-01-12 2 views
0

누구든지 powershell 스크립트를 사용해주세요. 온라인으로 검색 했으므로 정확한 대답을 얻을 수 없습니다. 확장자가 .stat 인 폴더에서 모든 파일을 재귀 적으로 제거하는 스크립트가 필요합니다.이 파일은 모두 500 바이트보다 작습니다. 스크립트가 먼저 모든 파일과 파일 수를 줄 수 있다면 좋을 것입니다.PowerShell 디렉터리에서 재귀 적으로 500 바이트보다 작은 파일을 제거하십시오.

$path = 'some path defined here' 
Get-ChildItem $path -Filter *.stat -recurse |?{$_.PSIsContainer -eq $false -and $_.length -lt 500}|?{Remove-Item $_.fullname -WhatIf} 

한 번 -whatif을 제거 삭제 한 다음의 히트로 모든 파일

답변

3

그것은 가져 오기-ChildItem을 꽤 똑바로 앞으로의 삭제에 진행됩니다 입력 한 경우 - 객체와 같이 ForEach-객체에 도움 코드가 원하는 파일을 제거하는지 테스트했습니다.

+0

감사합니다 만, 1 시간 일 것 같다. – user1702369

0

많은 수의 하위 폴더가있는 경우 파일 시스템 공급자를 사용하는 필터링이 Where-Object를 사용하는 것보다 효율적이므로 Get-ChildItem에 대해 -file 스위치를 사용해 볼 수 있습니다.

Get-ChildItem $path -Filter *.stat -recurse -file | ? {$_.length -lt 500} | % {Remove-Item $_.fullname -WhatIf}

0

간단한 해결책 :

ls | where {$_.Length -lt .0.0005mb} | Remove-Item -Force-Recurse 
관련 문제