다음을 통해 공유


Remove-Item

지정된 항목을 삭제합니다.

구문

Path (기본값)

Remove-Item
    [-Path] <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-Stream <String[]>]
    [<CommonParameters>]

LiteralPath

Remove-Item
    -LiteralPath <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-Stream <String[]>]
    [<CommonParameters>]

Description

Remove-Item cmdlet은 하나 이상의 항목을 삭제합니다. 많은 공급자가 지원하므로 파일, 폴더, 레지스트리 키, 변수, 별칭 및 함수를 비롯한 다양한 유형의 항목을 삭제할 수 있습니다.

예제

예제 1: 파일 이름 확장명이 있는 파일 삭제

이 명령은 "C:\Test" 폴더에서 점('.')을 포함하는 이름이 있는 모든 파일을 삭제합니다. 명령은 점을 지정하기 때문에 파일 이름 확장명이 없는 폴더 또는 파일을 삭제하지 않습니다.

Remove-Item C:\Test\*.*

예제 2: 폴더에 있는 문서 파일 중 일부를 삭제합니다.

이 명령은 현재 폴더에서 ".doc" 파일 이름 확장명이 있는 모든 파일과 1을 포함하지 않는 이름을 삭제합니다. 와일드카드 문자('*')를 사용하여 현재 폴더의 내용을 지정합니다. IncludeExclude 매개 변수를 사용하여 삭제할 파일을 지정합니다.

Remove-Item * -Include *.doc -Exclude *1*

예제 3: 숨겨진 읽기 전용 파일 삭제

이 명령은 숨겨진 읽기 전용파일을 삭제합니다. Path 매개 변수를 사용하여 파일을 지정합니다. Force 매개 변수를 사용하여 삭제합니다. 강제읽기 전용 삭제하거나 숨겨진 파일을 수 없습니다.

Remove-Item -Path C:\Test\hidden-RO-file.txt -Force

예제 4: 하위 폴더에서 재귀적으로 파일 삭제

이 명령은 현재 폴더의 모든 CSV 파일과 모든 하위 폴더를 재귀적으로 삭제합니다.

Remove-Item 매개 변수에 알려진 문제가 있으므로 이 예제의 명령은 Get-ChildItem 사용하여 원하는 파일을 가져옵니다. 그런 다음 파이프라인 연산자를 사용하여 Remove-Item전달합니다.

Get-ChildItem 명령에서 Path 현재 폴더의 내용을 나타내는 '*' 값을 줍니다. CSV 파일 형식을 지정하기 위해 Include를 사용하고 검색을 재귀적으로 만들기 위해 Recurse를 사용합니다.

-Path *.csv같은 경로의 파일 형식을 지정하려고 하면 cmdlet은 검색 주체를 자식 항목이 없는 파일로 해석하고 재귀 실패합니다.

Get-ChildItem * -Include *.csv -Recurse | Remove-Item

예제 5: 하위 키를 재귀적으로 삭제

이 명령은 "OldApp" 레지스트리 키와 모든 하위 키 및 값을 삭제합니다. Remove-Item 사용하여 키를 제거합니다. 경로가 지정되었지만 선택적 매개 변수 이름(Path)은 생략됩니다.

재귀 매개 변수는 "OldApp" 키의 모든 내용을 재귀적으로 삭제합니다. 키에 하위 키가 포함되어 있고 재귀 매개 변수를 생략하면 키의 내용을 삭제할지 확인하라는 메시지가 표시됩니다.

Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse

예제 6: 특수 문자가 있는 파일 삭제

다음 예제에서는 대괄호 또는 괄호와 같은 특수 문자가 포함된 파일을 삭제하는 방법을 보여 줍니다.

Get-ChildItem
    Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         6/1/2018  12:19 PM           1362 myFile.txt
-a----         6/1/2018  12:30 PM           1132 myFile[1].txt
-a----         6/1/2018  12:19 PM           1283 myFile[2].txt
-a----         6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*'
    Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         6/1/2018  12:30 PM           1132 myFile[1].txt
-a----         6/1/2018  12:19 PM           1283 myFile[2].txt
-a----         6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*' | ForEach-Object { Remove-Item -LiteralPath $_.Name }
Get-ChildItem
    Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         6/1/2018  12:19 PM           1362 myFile.txt

예제 7: 대체 데이터 스트림 제거

이 예제에서는 Remove-Item cmdlet의 Stream 동적 매개 변수를 사용하여 대체 데이터 스트림을 삭제하는 방법을 보여줍니다. 스트림 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

첫 번째 명령은 cmdlet의 Get-Item 동적 매개 변수를 사용하여 "Copy-Script.ps1" 파일의 Zone.Identifier 스트림을 가져옵니다.

두 번째 명령은 cmdlet의 Remove-Item 동적 매개 변수를 사용하여 파일의 Zone.Identifier 스트림을 제거합니다.

세 번째 명령은 cmdlet의 Get-Item 동적 매개 변수를 사용하여 Zone.Identifier 스트림이 삭제되었는지 확인합니다.

네 번째 명령은 Get-Item 매개 변수 없이 cmdlet을 파일이 삭제되지 않는지 확인합니다.

Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
   FileName: \\C:\Test\Copy-Script.ps1

Stream                   Length
------                   ------
Zone.Identifier              26

Remove-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier

Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
Get-Item : Could not open alternate data stream 'Zone.Identifier' of file 'C:\Test\Copy-Script.ps1'.
At line:1 char:1
+ Get-Item 'C:\Test\Copy-Script.ps1' -Stream Zone.Identifier
+ [!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()]~~
    + CategoryInfo          : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundE
   xception
    + FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand

Get-Item C:\Test\Copy-Script.ps1
    Directory: C:\Test

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          8/4/2011  11:15 AM       9436 Copy-Script.ps1

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:cf(cf)

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Credential

비고

이 매개 변수는 PowerShell과 함께 설치된 공급자에서 지원되지 않습니다. 다른 사용자를 가장하거나 이 cmdlet을 실행할 때 자격 증명을 높이려면 Invoke-Command사용합니다.

매개 변수 속성

형식:PSCredential
Default value:Current user
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Exclude

이 cmdlet에서 생략하는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt)을 입력합니다. 와일드카드 문자가 허용됩니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Filter

공급자의 형식 또는 언어로 필터를 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다.

와일드카드 문자 사용을 포함하여 필터의 구문은 공급자에 따라 달라집니다. 필터는 cmdlet이 개체를 검색할 때 공급자가 이를 적용하기 때문에 개체가 검색된 후에 PowerShell이 개체를 필터링하는 것보다 다른 매개 변수에 비해 더 효율적입니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Force

cmdlet이 숨김 또는 읽기 전용 파일 또는 읽기 전용 별칭 또는 변수와 같이 변경할 수 없는 항목을 강제로 제거합니다. cmdlet은 상수 별칭 또는 변수를 제거할 수 없습니다. 구현은 공급자마다 다릅니다. 추가 정보는 about_Providers를 참조하십시오. Force 매개 변수를 사용하더라도 cmdlet은 보안 제한을 재정의할 수 없습니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Include

삭제할 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드 문자가 허용됩니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-LiteralPath

제거되는 항목의 경로를 지정합니다. Path 매개 변수와 달리 LiteralPath 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:False
DontShow:False
별칭:PSPath

매개 변수 집합

LiteralPath
Position:Named
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Path

제거되는 항목의 경로를 지정합니다. 와일드카드 문자가 허용됩니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

Path
Position:0
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Recurse

이 cmdlet은 지정된 위치와 그 위치의 모든 자식 항목에서 항목을 삭제한다고 명시합니다.

Include 매개 변수와 함께 사용되는 경우 재귀 매개 변수가 모든 하위 폴더 또는 모든 자식 항목을 삭제하지 않을 수 있습니다. 이것은 알려진 문제입니다. 해결 방법으로 이 항목의 "예제 4"에 설명된 대로 Get-ChildItem -Recurse 명령의 파이핑 결과를 Remove-Item.

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Stream

Stream 매개 변수는 FileSystem 공급자가 Remove-Item추가하는 동적 매개 변수입니다. 이 매개 변수는 파일 시스템 드라이브에서만 작동합니다.

Remove-Item 사용하여 대체 데이터 스트림을 삭제할 수 있습니다. 그러나 인터넷에서 다운로드되는 파일을 차단하는 보안 검사를 제거하는 것은 권장되지 않습니다. 다운로드한 파일이 안전한지 확인하는 경우 Unblock-File cmdlet을 사용합니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-UseTransaction

활성 트랜잭션에 명령을 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions 참조하세요.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:usetx

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:위스콘신

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

String

리터럴 경로가 아닌 경로가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다.

참고

Remove-Item cmdlet은 모든 공급자가 노출하는 데이터를 사용하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 Get-PsProvider입력합니다. 추가 정보는 about_Providers를 참조하십시오.