PowerShell에서 콘텐츠가있는 디렉터리를 자동으로 제거하는 방법


답변:


340
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse

16
하위 디렉토리를 포함하는 디렉토리에서 실행할 때 이것을 두 번 실행해야한다는 것을 알았습니다. 처음에는 "디렉토리가 비어 있지 않습니다"라는 오류가 많이 발생합니다. 두 번째로 오류없이 완료됩니다.
Kristopher Johnson

1
폴더의 내용 만 삭제하고 폴더는 삭제하지 않으려면?
Kiquenet

2
@ Kiquenet-,이 예제 제거-항목이됩니다, 그래서 내가 경로에 후행 슬래시를 추가하면 \ foldertodelete * -Force -Recurse 나를 위해이 작동합니다.
아드리안 카

3
누락 된 폴더를 무시하려면 추가 할 수 -ErrorAction Ignore있지만 다른 오류는 숨길 수 있습니다.
Tor Klingberg

2
@Kiquenet 그런 다음 와일드 카드를 사용하여 해당 폴더 내의 모든 항목을 제거 할 수 있습니다 Remove-Item './folder/*'. 모든 폴더의 파일 만 지우려면 모든 리프를 나열하고 Remove-Item cmdlet으로 파이프 할 수 있습니다.Get-ChildItem -Recurse -File | Remove-Item
Michael Kargl

62

에서 PowerShell을 제거 힘 답변 : 도움 제거 품목은 말합니다 :

이 cmdlet의 Recurse 매개 변수가 제대로 작동하지 않습니다

해결 방법은 다음과 같습니다.

Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse

그런 다음 폴더 자체를 삭제하십시오.

Remove-Item $Destination -Force 

1
폴더의 내용 만 삭제하고 폴더는 삭제하지 않으려면?
Kiquenet

3
@ beppe9000 : 그렇습니다. 최근 스크립트에서 사용 Remove-Item -Recurse -Force $dir하고 있으며 작동합니다.
Michael Freidgeim

좋아,하지만 난 그냥 문제가 여전히 여기에 실행 Get-Help Remove-Item후 얻은 Windows 10 확장 설명서 에 문제가 있음을 읽었습니다 Update-Help...
beppe9000

2
Get-ChildItem에는 -Force 인수도 있어야하므로 숨겨진 파일 / 폴더도 반환합니다.
Vlad Iliescu

@MichaelFreidgeim-나는 이것을 사용했으며 간헐적 실패를 줄 였지만 여전히 가끔 발생합니다. Remove-Item -recurse가 최상위 레벨 디렉토리에 문제가있는 경우, 해결 방법 행과 함께 파이프 될 때 왜 유사하지 않은지 설명 할 수 있습니까? Get-ChildItem -recurse는 하위를 상향식 순서로 반환하지 않습니다. Remove-Item은 파이프 라인 된 입력을 주문합니까?
aggieNick02

42

이것은 나를 위해 일했다 :

Remove-Item $folderPath -Force  -Recurse -ErrorAction SilentlyContinue

따라서 폴더가 모든 파일과 함께 제거되며 폴더 경로가 존재하지 않으면 오류가 발생하지 않습니다.


폴더는 삭제되지 않습니다.
변수

13

2018 업데이트

현재 버전의 PowerShell (Windows 10 1809에서 v5.1로 테스트)에서 더 간단한 Unix 구문 rm -R .\DirName을 사용하여 .\DirName포함 할 수있는 모든 하위 디렉토리와 파일이 있는 디렉토리를 자동으로 삭제할 수 있습니다. 실제로 많은 공통 Unix 명령이 Linux 명령 행에서와 같은 방식으로 PowerShell에서 작동합니다.


rm -R .\DirName\*폴더 자체를 삭제하지 않고 폴더를 정리할 수도 있습니다
Jeff Chen

powershell 명령 중 어느 것도 2016 서버 코어 컴퓨터에서 작동하지 않습니다. 그들은 모두 '빈 상태가 아니기 때문에 제거 할 수 없다'고 말합니다. 또한 Windows에서 rd 명령을 시도했습니다. 폴더를 어디든 이동할 수 있지만 삭제할 수는 없습니다.
Helzgate


6

rm -Force -Recurse -Confirm:$false $directory2DeletePowerShell ISE 에서는 작동하지 않았지만 일반 PowerShell CLI를 통해 작동했습니다.

이게 도움이 되길 바란다. 그것은 나를 bannanas를 몰고 있었다.


고마워요, 저도 마찬가지입니다! 마지막으로에서 PowerShell CLI개발 중이 아닌 에서 전화를 걸 때이 폴더가 삭제 되었습니다 PowerShell ISE.
Bruno Bieri

3

요컨대, 우리는 rm -r -fo {folderName}폴더를 재귀 적으로 제거하고 (내부 모든 파일과 폴더를 제거) 강제로 사용할 수 있습니다


2

아래는 Michael Freidgeim의 답변을 복사하여 붙여 넣을 수있는 구현입니다.

function Delete-FolderAndContents {
    # http://stackoverflow.com/a/9012108

    param(
        [Parameter(Mandatory=$true, Position=1)] [string] $folder_path
    )

    process {
        $child_items = ([array] (Get-ChildItem -Path $folder_path -Recurse -Force))
        if ($child_items) {
            $null = $child_items | Remove-Item -Force -Recurse
        }
        $null = Remove-Item $folder_path -Force
    }
}

1

내 디렉토리가 C : \ users에 있으므로 관리자 권한으로 powershell을 실행해야했습니다.

del ./[your Folder name] -Force -Recurse

이 명령은 저에게 효과적이었습니다.


2
참고로 : del은에 대한 별칭입니다 Remove-Item.
Michael Kargl

0
$LogPath = "E:\" # Your local of directories
$Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "*temp*"}
foreach ($Folder in $Folders) 
{
    $Item =  $Folder.FullName
    Write-Output $Item
    Remove-Item $Item -Force -Recurse
}

위의 스크립트에서 폴더의 전체 이름을 인쇄하고 제거하십시오. \ o /
Anderson Braz

0

폴더를 객체로 가지고 있다면 다음 명령을 사용하여 동일한 스크립트에서 폴더를 만들었다 고 가정 해 봅시다.

$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"

그런 다음 동일한 스크립트에서 이와 같이 제거하면됩니다.

$folder.Delete($true)

$ true-재귀 제거 상태


0
$LogPath = "E:\" # Your local of directories
$Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "*grav*"} # Your keyword name directories

foreach ($Folder in $Folders) 
{
    $Item =  $Folder.FullName
    Write-Output $Item
    Remove-Item $Item -Force -Recurse -ErrorAction SilentlyContinue
}

위의 스크립트에서 폴더의 전체 이름을 인쇄하고 제거하십시오. 잘 했어 ...
Anderson Braz

1
안녕하세요 앤더슨, 두 가지 답변을 추가하지 않으려면 답변을 수정해야합니다. 그 중 하나를 삭제 하시겠습니까?
bummi

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.