Remove-Item
지정된 항목을 삭제합니다.
구문
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-DeleteKey]
[<CommonParameters>]
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-DeleteKey]
[<CommonParameters>]
Remove-Item
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Item
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
cmdlet은 Remove-Item
하나 이상의 항목을 삭제합니다. 많은 공급자가 지원하므로 파일, 폴더, 레지스트리 키, 변수, 별칭 및 함수를 비롯한 다양한 유형의 항목을 삭제할 수 있습니다.
예제
예제 1: 파일 확장명이 있는 파일 삭제
다음은 폴더에서 점(.
)을 포함하는 이름의 모든 파일을 삭제하는 C:\Test
예제입니다.
명령은 점을 지정하기 때문에 파일 확장명이 없는 폴더 또는 파일을 삭제하지 않습니다.
Remove-Item C:\Test\*.*
예제 2: 폴더에서 문서 파일 삭제
다음은 현재 폴더에서 파일 확장명 및 이름을 포함하지 *1*
않는 모든 파일을 .doc
삭제하는 예제입니다.
Remove-Item * -Include *.doc -Exclude *1*
와일드카드 문자(*
)를 사용하여 현재 폴더의 내용을 지정합니다. Include 및 Exclude 매개 변수를 사용하여 삭제할 파일을 지정합니다.
예제 3: 숨겨진 읽기 전용 파일 삭제
이 명령은 숨겨진 파일과 읽기 전용인 파일을 삭제합니다.
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
Path 매개 변수를 사용하여 파일을 지정합니다. Force 매개 변수를 사용하여 삭제합니다. Force가 없으면 읽기 전용 또는 숨겨진 파일을 삭제할 수 없습니다.
예제 4: 하위 폴더에서 재귀적으로 파일 삭제
이 명령은 현재 폴더의 모든 CSV 파일과 모든 하위 폴더를 재귀적으로 삭제합니다.
Recurse 매개 변수에 Remove-Item
알려진 문제가 있으므로 이 예제의 명령은 원하는 파일을 가져오는 데 사용한 Get-ChildItem
다음 파이프라인 연산자를 사용하여 전달합니다Remove-Item
.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
명령에서 Get-ChildItem
Path의 값은 현재 폴더의 내용을 나타내는 값(*
)입니다. Include를 사용하여 CSV 파일 형식을 지정하고 Recurse를 사용하여 검색을 재귀적으로 만듭니다. 경로 -Path *.csv
에서 파일 형식을 지정하려고 하면 cmdlet은 검색 제목을 자식 항목이 없는 파일로 해석하고 재귀 가 실패합니다.
참고 항목
이 동작은 Windows 버전 1909 이상에서 수정되었습니다.
예제 5: 하위 키를 재귀적으로 삭제
이 명령은 "OldApp" 레지스트리 키와 모든 하위 키 및 값을 삭제합니다. 키를 제거하는 데 사용됩니다 Remove-Item
. 경로가 지정되었지만 선택적 매개 변수 이름(Path)은 생략됩니다.
Recurse 매개 변수는 "OldApp" 키의 모든 내용을 재귀적으로 삭제합니다. 키에 하위 키가 포함되어 있고 Recurse 매개 변수를 생략하면 키의 내용을 삭제할지 확인하는 메시지가 표시됩니다.
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: 대체 데이터 스트림 제거
이 예제에서는 cmdlet의 Stream 동적 매개 변수를 Remove-Item
사용하여 대체 데이터 스트림을 삭제하는 방법을 보여줍니다. 스트림 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
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'.
Stream 매개 변수 Get-Item
는 파일의 Zone.Identifier
스트림을 Copy-Script.ps1
가져옵니다. Remove-Item
는 Stream 매개 변수를 사용하여 파일의 스트림을 Zone.Identifier
제거합니다. 마지막으로, cmdlet은 Get-Item
스트림이 Zone.Identifier
삭제되었음을 보여줍니다.
매개 변수
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다. 자세한 내용은 다음 문서를 참조하세요.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Credential
참고 항목
이 매개 변수는 PowerShell과 함께 설치된 공급자에서 지원되지 않습니다. 다른 사용자를 가장하거나 이 cmdlet을 실행할 때 자격 증명을 높이려면 Invoke-Command를 사용합니다.
형식: | PSCredential |
Position: | Named |
Default value: | Current user |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-DeleteKey
인증서 공급자가 사용할 수 있는 동적 매개 변수입니다. 인증서 공급자 및 이 매개 변수는 Windows 플랫폼에서만 사용할 수 있습니다.
제공되면 인증서가 삭제되면 cmdlet이 프라이빗 키를 삭제합니다.
자세한 내용은 about_Certificate_Provider 참조하세요.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Exclude
문자열 배열로 이 cmdlet이 작업에서 제외하는 항목 또는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt
.)을 입력합니다. 와일드카드 문자를 사용할 수 있습니다. Exclude 매개 변수는 와일드카드 문자가 디렉터리의 내용을 지정하는 항목의 내용(예: C:\Windows\*
명령)이 포함된 경우에만 유효합니다C:\Windows
.
제외와 함께 재귀를 사용하는 경우 제외는 현재 디렉터리의 결과만 필터링합니다. 하위 폴더에 제외 패턴과 일치하는 파일이 있는 경우 해당 파일은 부모 디렉터리와 함께 제거됩니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-Filter
Path 매개 변수를 한정할 필터를 지정합니다. FileSystem 공급자는 필터 사용을 지원하는 유일한 설치된 PowerShell 공급자입니다. fileSystem 필터 언어에 대한 구문은 about_Wildcards 찾을 수 있습니다. 필터는 검색된 후 PowerShell이 개체를 필터링하지 않고 cmdlet이 개체를 가져올 때 적용하기 때문에 다른 매개 변수보다 더 효율적입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-Force
cmdlet이 숨김 또는 읽기 전용 파일 또는 읽기 전용 별칭 또는 변수와 같이 변경할 수 없는 항목을 강제로 제거합니다. cmdlet은 상수 별칭 또는 변수를 제거할 수 없습니다. 구현은 공급자마다 다릅니다. 자세한 내용은 about_Providers 참조하세요. Force 매개 변수를 사용하더라도 cmdlet은 보안 제한을 재정의할 수 없습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Include
문자열 배열로 이 cmdlet이 작업에 포함하는 항목 또는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt"
.)을 입력합니다. 와일드카드 문자를 사용할 수 있습니다. Include 매개 변수는 명령에 와일드카드 문자가 디렉터리의 내용을 지정하는 항목의 내용(예: C:\Windows\*
포함)을 C:\Windows
포함하는 경우에만 유효합니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-LiteralPath
하나 이상의 위치에 대한 경로를 지정합니다. LiteralPath의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.
자세한 내용은 about_Quoting_Rules 참조하세요.
형식: | String[] |
별칭: | PSPath, LP |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Path
제거되는 항목의 경로를 지정합니다. 와일드카드 문자를 사용할 수 있습니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | True |
-Recurse
이 cmdlet은 지정된 위치 및 위치의 모든 자식 항목에서 항목을 삭제한다는 것을 나타냅니다.
Recurse 매개 변수는 모든 하위 폴더 또는 모든 자식 항목을 삭제하지 않을 수 있습니다. 이것은 알려진 문제입니다.
참고 항목
이 동작은 Windows 버전 1909 이상에서 수정되었습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Stream
FileSystem 공급자가 사용할 수 있는 동적 매개 변수입니다. 이 매개 변수는 Windows에서만 사용할 수 있습니다. 이 매개 변수는 Recurse 매개 변수와 함께 사용할 수 없습니다.
와 같은 Zone.Identifier
대체 데이터 스트림을 삭제하는 데 사용할 Remove-Item
수 있습니다.
그러나 인터넷에서 다운로드되는 파일을 차단하는 보안 검사를 제거하는 것은 권장되지 않습니다. 다운로드한 파일이 안전한지 확인하는 경우 cmdlet을 Unblock-File
사용합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다. Windows PowerShell 7.2 Remove-Item
부터 디렉터리 및 파일에서 대체 데이터 스트림을 제거할 수 있습니다.
자세한 내용은 about_FileSystem_Provider 참조하세요.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-WhatIf
cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
리터럴 경로가 아닌 경로가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.
출력
None
이 cmdlet은 출력을 반환하지 않습니다.
참고
PowerShell에는 다음 별칭이 포함됩니다.Remove-Item
- 모든 플랫폼:
del
erase
rd
ri
- Windows:
rm
rmdir
cmdlet Remove-Item
은 모든 공급자가 노출하는 데이터와 함께 작동하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 .를 입력 Get-PsProvider
합니다. 자세한 내용은 about_Providers 참조하세요.
Recurse 매개 변수를 사용하지 않고 항목이 포함된 폴더를 삭제하려고 하면 cmdlet에서 확인을 요청합니다. 사용 -Confirm:$false
은 프롬프트를 표시하지 않습니다. 이것은 의도적인 것입니다.
관련 링크
PowerShell