PowerShell에서 폴더 삭제하는 방법

  1. PowerShell에서 폴더를 삭제하기 위해 Remove-item Cmdlet 사용
  2. PowerShell에서 폴더를 삭제하기 위해 명령 프롬프트 사용
  3. PowerShell에서 폴더를 삭제하기 위해 FileSystem 객체 방법 사용
  4. PowerShell에서 폴더를 삭제하기 위해 .Net 클래스 사용
이 기사와 함께 볼 수 있도록 자세한 유튜브 영상을 제작하여 아래에 삽입했습니다!
PowerShell에서 폴더 삭제하는 방법

PowerShell에서 폴더 삭제 작업은 로컬 경로든 공유 경로든 상관없이 지정된 위치에서 폴더를 제거합니다.

이 기사는 PowerShell을 사용하여 폴더를 삭제하는 다양한 방법에 대해 설명합니다.

PowerShell에서 폴더를 삭제하기 위해 Remove-item Cmdlet 사용

하나 이상의 개체는 Remove-Item cmdlet로 제거할 수 있습니다.

삭제를 위해 두 가지 다른 문법을 사용할 수 있습니다. 그러나 이 두 가지는 분리하여 사용할 수 있지만 결합할 수는 없습니다.

  • 문법 1
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
  • 문법 2
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]

-Path-LiteralPath는 동일한 문법에서 사용할 수 없습니다.

Remove-item 매개변수

가장 일반적으로 사용되는 매개변수의 이름과 설명은 아래와 같습니다.

이름 설명
-Path 제거할 항목의 위치를 지정합니다. 와일드카드 문자 사용에 대한 제한이 없습니다.
-LiteralPath 하나 이상의 위치에 지정된 경로
-Confirm cmdlet을 실행하기 전에 확인 프롬프트가 표시됩니다.
-Exclude cmdlet이 작업 중에 제외하는 항목
-Credential PowerShell에 설치된 공급자는 이 매개변수를 지원하지 않습니다. 이 cmdlet을 사용할 때는 Invoke-Command를 사용하여 다른 사용자로 가장하거나 권한을 상승시키십시오.
-Filter 경로 매개변수를 검증하기 위한 필터
-Force 그렇지 않으면 수정할 수 없는 개체(예: 개인 파일 또는 읽기 전용 파일/별칭 또는 변수)를 강제로 제거합니다.
-Include cmdlet이 작업 중에 포함하는 항목
-Recurse 이 cmdlet은 지정된 위치의 개체와 해당 위치의 모든 자식 항목을 삭제합니다.
-Stream Stream 인수는 FileSystem 공급자가 Remove-Item에 추가한 동적 매개변수입니다. 이 설정은 파일 시스템이 있는 드라이브에만 적용됩니다.
-WhatIf cmdlet이 실행되면 어떤 일이 발생하는지 보여줍니다.

다양한 문법 사용과 함께 몇 가지 예를 살펴보겠습니다.

예제 1:

여기서는 아래에 언급된 명령을 사용하여 test1 폴더를 삭제할 것이며, 마지막에 폴더가 삭제된 것을 볼 수 있습니다.

Remove-Item 'D:\temp\Test1'

예제 2:

우리는 폴더 test2를 재귀적으로 삭제할 것입니다. 이전 예에서는 PowerShell이 디렉토리가 비어 있는지 확인합니다. 이 시나리오에서는 폴더만 제거합니다.

Remove-Item 'D:\temp\test2' -Recurse

예제 3: -RemoveItem에서 -LiteralPath 사용

-LiteralPath-Force-Recurse 매개변수와 함께 사용됩니다. 따라서 이는 확인 프롬프트 없이 지정된 경로에 있는 폴더와 해당 항목을 강제로 삭제합니다.

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

예제 4: 파이프라인으로서의 Remove-item

우리는 먼저 Get-ChildItem을 사용하여 폴더와 파일을 검색한 다음, 이전 명령에 대한 결과를 파이프라인하기 위해 Remove-Item을 사용합니다.

Get-ChildItem C:\Temp\TestFolder\ | Remove-Item -Recurse -Force -Verbose

여기서 유일한 문제는 그것이 폴더의 내용만 삭제하고 폴더 자체는 삭제하지 않는다는 것이므로, 폴더를 삭제하기 위해 다른 코드 스니펫을 추가해야 합니다.

PowerShell에서 폴더를 삭제하기 위해 명령 프롬프트 사용

대부분의 커맨드라인 사용자는 rmdir 명령을 사용하여 폴더를 제거하거나 삭제합니다. 문법은 아래와 같이 rmdir와 폴더 경로입니다.

rmdir C:\Temp\TestFolder

PowerShell에서 폴더를 삭제하기 위해 FileSystem 객체 방법 사용

PowerShell에서 폴더를 제거하는 다양한 옵션이 있습니다. 이 중 하나는 파일 시스템 객체 방법입니다. 이 절차에는 두 단계가 있습니다. 첫 번째 단계에서는 파일 시스템 객체를 구성하고, 두 번째 단계에서는 DeleteFolder() 기능을 사용하여 연결된 객체의 폴더를 파괴합니다.

따라서 이를 위해 먼저 test.ps1 파일을 생성한 다음 아래에 주어진 명령을 추가합니다.

$object = New-Object -ComObject Scripting.FileSystemObject
$object.DeleteFolder("C:\Temp\TestFolder")

마지막으로 test.ps1 파일을 실행하면 우리가 원하는 폴더가 삭제됩니다.

PowerShell에서 폴더를 삭제하기 위해 .Net 클래스 사용

PowerShell에서 System.IO.Directory 클래스와 Delete() 메서드는 폴더를 삭제하기 위해 .NET 프레임워크에 의해 사용됩니다. 제공된 폴더가 비어 있지 않으면 이 작업은 예외를 발생시킵니다:

&gt [System.IO.Directory]::Delete("C:\Temp\TestFolder")

이 비어 있지 않은 폴더를 제거하려면 Delete() 기능에서 $true 옵션을 사용하십시오:

System.IO.Directory]::Delete("C:\Temp\TestFolder", $true)
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

관련 문장 - PowerShell Directory