Bagikan melalui


Remove-Item

Menghapus item yang ditentukan.

Sintaks

Path (Default) - FileSystem provider

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

LiteralPath - FileSystem provider

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

Path (Default) - Certificate provider

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

LiteralPath - Certificate provider

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

Path (Default) - All providers

Remove-Item
    [-Path] <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LiteralPath - All providers

Remove-Item
    -LiteralPath <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Deskripsi

Cmdlet Remove-Item menghapus satu atau beberapa item. Karena didukung oleh banyak penyedia, ia dapat menghapus berbagai jenis item, termasuk file, folder, kunci registri, variabel, alias, dan fungsi.

Contoh

Contoh 1: Menghapus file yang memiliki ekstensi file apa pun

Contoh ini menghapus semua file dengan nama yang menyertakan titik (.) dari folder C:\Test. Karena perintah menentukan titik, perintah tidak menghapus folder atau file yang tidak memiliki ekstensi file.

Remove-Item C:\Test\*.*

Contoh 2: Menghapus file dokumen dalam folder

Contoh ini menghapus dari folder saat ini semua file yang memiliki ekstensi file .doc dan nama yang tidak menyertakan *1*.

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

Ini menggunakan karakter wildcard (*) untuk menentukan isi folder di dalamnya. Ini menggunakan parameter Sertakan dan Kecualikan untuk menentukan file yang akan dihapus.

Contoh 3: Menghapus file tersembunyi dan baca-saja

Perintah ini menghapus file yang tersembunyi dan baca-saja .

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

Ini menggunakan parameter Jalur untuk menentukan file. Ini menggunakan parameter Force untuk menghapusnya. Tanpa Force, Anda tidak dapat menghapus file baca-saja atau file tersembunyi.

Contoh 4: Menghapus file di subfolder secara rekursif

Perintah ini menghapus semua file CSV di folder saat ini dan semua subfolder secara rekursif.

Karena parameter Recurse di Remove-Item memiliki masalah yang diketahui, perintah dalam contoh ini menggunakan Get-ChildItem untuk mendapatkan file yang diinginkan, lalu menggunakan operator alur untuk meneruskannya ke Remove-Item.

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

Dalam perintah Get-ChildItem, Path memiliki nilai (*), yang mewakili konten folder saat ini. Ini menggunakan Include untuk menentukan jenis file CSV, dan menggunakan Recurse untuk membuat pengambilan rekursif. Jika Anda mencoba menentukan jenis file di jalur, seperti -Path *.csv, cmdlet menginterpretasikan subjek pencarian menjadi file yang tidak memiliki item anak, dan Berulang gagal.

Nota

Perilaku ini diperbaiki di Windows versi 1909 ke atas.

Contoh 5: Menghapus subkunci secara rekursif

Perintah ini menghapus kunci registri "OldApp" dan semua subkunci serta nilainya. Ini menggunakan Remove-Item untuk menghapus kunci. Jalur ditentukan, tetapi nama parameter opsional (Jalur) dihilangkan.

Parameter Recurse menghapus semua konten kunci "OldApp" secara rekursif. Jika kunci berisi subkunci dan Anda menghilangkan parameter Recurse, Anda akan diminta untuk mengonfirmasi bahwa Anda ingin menghapus isi dari kunci tersebut.

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

Contoh 6: Menghapus file dengan karakter khusus

Contoh berikut menunjukkan cara menghapus file yang berisi karakter khusus seperti tanda kurung atau tanda kurung.

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

Contoh 7: Menghapus aliran data alternatif

Contoh ini menunjukkan cara menggunakan parameter dinamis Stream cmdlet Remove-Item untuk menghapus aliran data alternatif. Parameter stream diperkenalkan di 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'.

Parameter StreamGet-Item mengambil aliran Zone.Identifier dari file Copy-Script.ps1. Remove-Item menggunakan Stream parameter untuk menghapus stream Zone.Identifier dari file. Akhirnya, cmdlet Get-Item menunjukkan bahwa aliran Zone.Identifier dihapus.

Parameter

-Confirm

Meminta konfirmasi sebelum menjalankan cmdlet. Untuk informasi lebih lanjut, baca artikel berikut:

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False
Alias:Cf

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Credential

Nota

Parameter ini tidak didukung oleh penyedia apa pun yang diinstal dengan PowerShell. Untuk meniru pengguna lain, atau meningkatkan kredensial Anda saat menjalankan cmdlet ini, gunakan Invoke-Command.

Properti parameter

Jenis:PSCredential
Nilai default:Current user
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-DeleteKey

Ini adalah parameter dinamis yang disediakan oleh penyedia Sertifikat. Penyedia Sertifikat dan parameter ini hanya tersedia di platform Windows.

Saat disediakan, cmdlet menghapus kunci privat saat sertifikat dihapus.

Untuk informasi lebih lanjut, lihat about_Certificate_Provider.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Exclude

Menentukan item atau item-item yang tidak akan disertakan dalam operasi oleh cmdlet ini, dalam bentuk array string. Nilai parameter ini memenuhi syarat parameter Jalur. Masukkan elemen atau pola jalur, seperti *.txt. Karakter pengganti diizinkan. Parameter Exclude hanya efektif ketika perintah menyertakan konten suatu item, seperti C:\Windows\*, di mana karakter wildcard menentukan konten direktori C:\Windows.

Saat menggunakan Mengulangi dengan Kecualikan, Kecualikan hanya memfilter hasil dari direktori ini saja. Jika ada file yang cocok dengan pola Kecualikan dalam subfolder, file tersebut akan dihapus bersama dengan direktori induknya.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:True
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Filter

Menentukan filter untuk mengkualifikasi parameter Jalur . Penyedia FileSystem adalah satu-satunya penyedia PowerShell yang diinstal yang mendukung penggunaan filter. Anda dapat menemukan sintaks untuk bahasa filter FileSystem dalam about_Wildcards. Filter lebih efisien dibandingkan parameter lainnya, karena penyedia menerapkannya ketika cmdlet mendapatkan objek, bukan PowerShell yang menyaring objek setelah mereka diambil.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:True
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Force

Memaksa cmdlet untuk menghapus item yang tidak dapat diubah, seperti file tersembunyi atau hanya-baca, alias hanya-baca, atau variabel hanya-baca. Cmdlet tidak dapat menghapus alias atau variabel konstanta. Implementasi bervariasi dari penyedia ke penyedia. Untuk informasi selengkapnya, lihat tentang_Penyedia. Bahkan menggunakan parameter Force, cmdlet tidak dapat mengabaikan pembatasan keamanan.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Include

Menentukan item atau beberapa item dalam bentuk array string yang disertakan cmdlet ini dalam operasi. Nilai parameter ini memenuhi syarat parameter Jalur. Masukkan elemen atau pola jalur, seperti "*.txt". Karakter pengganti diizinkan. Parameter Sertakan hanya efektif ketika perintah menyertakan konten item, seperti C:\Windows\*, di mana karakter wildcard menentukan konten direktori C:\Windows.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:True
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-LiteralPath

Menentukan jalur ke satu atau beberapa lokasi. Nilai LiteralPath digunakan persis seperti yang diketik. Tidak ada karakter yang ditafsirkan sebagai wildcard. Jika jalur menyertakan karakter escape, bungkus jalur tersebut dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape.

Untuk informasi lebih lanjut, lihat about_Quoting_Rules.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:PSPath, LP

Set parameter

LiteralPath
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-Path

Menentukan jalur item yang sedang dihapus. Karakter pengganti diizinkan.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:True
DontShow:False

Set parameter

Path
Position:0
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-Recurse

Menunjukkan bahwa cmdlet ini menghapus item di lokasi yang ditentukan dan di semua item turunan dari lokasi-lokasi tersebut.

Parameter Berulang mungkin tidak menghapus semua subfolder atau semua item turunan. Ini adalah masalah yang sudah diketahui.

Nota

Perilaku ini diperbaiki di Windows versi 1909 dan yang lebih baru.

Properti parameter

Jenis:SwitchParameter
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Stream

Ini adalah parameter dinamis yang disediakan oleh penyedia FileSystem. Parameter ini hanya tersedia di Windows. Parameter ini tidak dapat digunakan dalam kombinasi dengan parameter Recurse.

Anda dapat menggunakan Remove-Item untuk menghapus aliran data alternatif, seperti Zone.Identifier. Namun, ini bukan cara yang disarankan untuk menghilangkan pemeriksaan keamanan yang memblokir file yang diunduh dari Internet. Jika Anda memverifikasi bahwa file yang diunduh aman, gunakan cmdlet Unblock-File.

Parameter ini diperkenalkan di Windows PowerShell 3.0. Pada Windows PowerShell 7.2, Remove-Item dapat menghapus aliran data alternatif dari direktori serta file.

Untuk informasi selengkapnya, lihat about_FileSystem_Provider.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:True
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-WhatIf

Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False
Alias:wi

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

Input

String

Anda dapat menyalurkan string yang berisi jalur, tetapi bukan jalur harfiah, ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output.

Catatan

PowerShell menyertakan alias berikut untuk Remove-Item:

  • Semua platform:
    • del
    • erase
    • rd
    • ri
  • Windows:
    • rm
    • rmdir

Cmdlet Remove-Item dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mencantumkan penyedia yang tersedia dalam sesi Anda, ketik Get-PSProvider. Untuk informasi selengkapnya, lihat tentang_Penyedia.

Ketika Anda mencoba menghapus folder yang berisi item tanpa menggunakan parameter Recurse, cmdlet meminta konfirmasi. Menggunakan -Confirm:$false tidak menghilangkan prompt. Ini memang disengaja.