programing

PowerShell로 특정 이름의 폴더를 재귀적으로 삭제하려면 어떻게 해야 합니까?

codeshow 2023. 10. 29. 20:05
반응형

PowerShell로 특정 이름의 폴더를 재귀적으로 삭제하려면 어떻게 해야 합니까?

여러 폴더에서 특정 확장명을 가진 파일을 다음과 같이 삭제할 수 있습니다.

Get-childitem * -include *.scc -recurse | remove-item

그러나 나는 또한 특정 이름을 가진 폴더를 삭제해야 합니다 - 특히 subversion repo에서 파일을 풀다운할 때 subversion이 (.svn" 또는 "_svn") 생성하는 폴더.

사람이 해야 합니다.

get-childitem -Include .svn -Recurse -force | Remove-Item -Force -Recurse

기타 버전:

$fso = New-Object -com "Scripting.FileSystemObject"
$folder = $fso.GetFolder("C:\Test\")

foreach ($subfolder in $folder.SubFolders)
{
    If ($subfolder.Name -like "*.svn")
    {
        remove-item $subfolder.Path -Verbose
    }       
}

저는 피하는 편입니다.-Include매개 변수 onGet-ChildItem보다 느리기 때문에-Filter. 단, 이 경우 (로 표현할 수 없기 때문에)-Filter), 다음과 같이 사용합니다.

Get-ChildItem . -Include .svn,_svn -Recurse -Force | Remove-Item -Recurse -Force

또는 프롬프트에 이 내용을 입력하는 경우:

ls . -inc .svn,_svn -r -fo | ri -r -fo

빠른 삭제를 위해 -Filter를 사용합니다.

특정 이름을 가진 폴더를 재귀적으로 삭제하려면 다음과 같이 하십시오. -Filter보다 상당히 빠릅니다.-Include.

@Keith의 답변 중 가시성 향상을 위한 빠른 버전은 다음과 같습니다.

완전히 타이핑:

Get-ChildItem -Filter .svn -Recurse -Force | Remove-Item -Recurse -Force

짧은 버전:

ls . -filter .svn -r -fo | ri -r -fo

언급URL : https://stackoverflow.com/questions/3648142/how-can-i-recursively-delete-folder-with-a-specific-name-with-powershell

반응형