폴더에서 프로그래밍 방식으로 (예 : Powershell을 사용하여) 특정 일수보다 오래된 파일을 삭제해야합니다.xx 일보다 오래된 파일을 삭제하십시오.
나는이 작업을 수행하는 간단한 스크립트를 작성했지만, 문제는 폴더에있는 파일의 양 때문에 삭제를 시작하는 데 문제가있는 것 같습니다.
일괄 처리로 삭제하는 방법을 찾고 있습니다. 따라서 처음 1000 개를 삭제하고 삭제할 수 있습니다.
현재이 폴더에는 수십만 개의 파일이 있으며 실제로 통과 할 수 없습니다. 대신 모든 파일을 통해 반복하고 목록에서 삭제 표시된 파일을 저장하고 당신이 그들을 발견하면 바로 파이프를 다시 목록에 각 파일을 통해 다음 명령에 각 파일을 루핑의
Param(
[Parameter(Mandatory=$true)][string]$Path,
[Parameter(Mandatory=$true)][string]$DaysToDelete
)
$limit = (Get-Date).AddDays($DaysToDelete)
$LogFile = "FileCleanupLog-$(Get-Date -f yyyyMMdd_HH_mm_ss).txt";
function Log-Message
{
Param ([string]$logtext)
Add-content $LogFile -value $logtext
}
If (-Not (Test-Path $Path))
{
Write-Host "Invalid Path provided!" -ForegroundColor Red
Exit
}
$files = Get-ChildItem -Path $Path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit }
If ($files.Count -GT 1) {
$files | % {$directory=$_.DirectoryName;(Log-Message "Deleting File $directory\$_");$_ } | Remove-Item -Force
}
'get-childitem처럼 SELECT에 get-childitem을 파이핑 해 보셨습니까? | -first 100'을 선택 하시겠습니까? 현재 갖고있는 스크립트를 게시해야합니다. –
너무 무례 해 줘서 고마워. 내 질문을 보면 일괄 적으로 파일을 삭제할 방법을 찾고 있다고 말했습니다. – TaylorN
_이 작업을 수행 할 간단한 스크립트를 작성했습니다. 아마도 지금까지 시도한 것을 포함해야합니다. 지금 이것은 codez 질문에 대한 글씨처럼 읽습니다. 대부분의 경우 기존 코드를 수정하거나 개선하는 데 도움이됩니다. "일괄 처리"로 작업을 수행하더라도 작업을 사용하지 않는 한 한 번에 하나씩 수행 할 것입니다. 진행 상황 표시를 찾으십니까?그것을 실행시키고 그 일을하는 데있어서 해가되는 것은 무엇입니까? 자주 만만하면 첫 번째 패스 만 빨아들입니다. 최근에이 작업을 수행했지만 처음 실행하면 500 만 개의 파일이 삭제되었습니다. 이제 잘 돌아갑니다. – Matt