.jpg 파일이있는 폴더가 있습니다. 이러한 제품을 액세스 데이터베이스의 제품과 연결합니다. 제품 소스 중 하나는 .jpg 파일을 제공하지만 현재 사용중인 사진 만 쉽게 다운로드 할 수는 없습니다. 따라서 필자는 PowerShell 스크립트를 사용하여 필요하지 않은 파일을 삭제했습니다. Powershell script to delete files not specified in a listPowershell 진행률 막대가있는 목록에없는 파일을 삭제하는 스크립트
그리고 그것은 잘 작동 x0n @에
$exclusions = Get-Content C:\Users\office\Desktop\ExcludedPhotos.txt
dir -rec M:\PhotoDirectory\PhotoFolder | Where-Object {$exclusions -notcontains $_.name } | Remove-Item
신용! 하지만 문제는 영원히 걸리고 나는 검색하고 삭제하는 데 180,000 이상의 항목이 있습니다. 그래서 나는 그 과정을 얼마나 멀리 겪었는지 알 수있는 진도 표시 줄을 만들고 싶었습니다.
그래서 검색의 약간 내가 여기을 시도했다 그러나 문제는 내가 함께 두 가지를 반하게하는 방법을 몰라
"진행 표시 줄을 사용하여"라는 기사를 발견 한 후 :
$exclusions = Get-Content C:\Users\office\Desktop\ExcludedPhotos.txt
1..100 | foreach-object {
Write-Progress -Activity "Deleting Files" -Status "$_ %" -Id 1 -PercentComplete $_ -CurrentOperation "Deleting File $_"
dir -rec M:\PhotoDirectory\PhotoFolder | Where-Object {$exclusions -notcontains $_.name } | Remove-Item
}
그러나 원래 스크립트보다 더 오래 걸리는 것처럼 보입니다. 정확하게 작동하는 방식을 알지 못해서 10-15 개의 파일 만 제거해야 할 때 테스트하고 있습니다.
정말 기본적인 것이 빠져있을 가능성이 있습니다. 실종입니다. 그러나 이것을 이해하는 데 정말로 도움이 될 것입니다. 그러나
수를 삭제할 수있는 파일이 매우 높은 경우, 그는 또한 모든 사람들과 진전을 맺지 않을 때 도움이 될 것입니다. 파일 대신에 여러 개의 파일이 있습니다. 예를 들어, 계수를 100으로 나눈 값을 가장 가까운 int로 반올림 한 다음 카운터에 대해 계수로 사용합니다. 예 : 1 ~ 100 개의 파일을 사용하면 모든 파일에 진행 상황을 기록합니다. 다른 모든 파일은 200 개입니다. 1000, 매 10 년마다 ... –
또한 매우 큰 나무의 재귀 get 항목은 매우 느립니다. get-item -recurse -directory, getter-item -file을 반복적으로 사용하면 좋을 것입니다. OS VHD 또는 WIM 내용의 유효성을 검사하기 위해이 설명서를 변형했습니다. –
"열거, 필터 및 파일을 100 번 삭제하려고 시도했기 때문입니다. 이는 분명 불필요합니다." 물론 그것이 전체 스크립트를 100 번 반복하여 실행하려고 할 때 더 오래 걸릴 것이고 스스로 반복 할 때 진행률 표시 줄을 알려주는 것이 당연합니다. 나는 그것이 제거 된 총 바이트를 계산하는 옵션을 좋아한다. 나는 그것을 시도하고 나의 발견으로 돌아올 것입니다. – Liberator17