Remove-Item

Menghapus item yang ditentukan.

Sintaks

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>]

Deskripsi

Remove-Item Cmdlet 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 nama file apa pun

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

Remove-Item C:\Test\*.*

Contoh 2: Menghapus beberapa file dokumen dalam folder

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

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

Ini menggunakan karakter kartubebas (*) untuk menentukan isi folder saat ini. 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 Paksa, Anda tidak dapat menghapus file baca-saja atau tersembunyi .

Contoh 4: Menghapus file dalam subfolder secara rekursif

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

Karena parameter Berulang 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

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

Catatan

Perilaku ini diperbaiki di Windows versi 1909 ke atas.

Contoh 5: Menghapus subkey secara rekursif

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

Parameter Berulang menghapus semua konten kunci "OldApp" secara rekursif. Jika kunci berisi subkey dan Anda menghilangkan parameter Recurse , Anda diminta untuk mengonfirmasi bahwa Anda ingin menghapus konten kunci.

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 Get-ItemStream mendapatkan Zone.Identifier aliran Copy-Script.ps1 file. Remove-Item menggunakan parameter Stream untuk menghapus Zone.Identifier aliran file. Akhirnya, Get-Item cmdlet menunjukkan bahwa Zone.Identifier aliran telah dihapus.

Parameter

-Confirm

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

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Catatan

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.

Type:PSCredential
Position:Named
Default value:Current user
Accept pipeline input:True
Accept wildcard characters:False

-Exclude

Menentukan, sebagai array string, item atau item yang dikecualikan cmdlet ini dalam operasi. Nilai parameter ini memenuhi syarat parameter Path . Masukkan elemen atau pola jalur, seperti *.txt. Karakter kartubebas diizinkan. Parameter Kecualikan hanya berlaku ketika perintah menyertakan konten item, seperti C:\Windows\*, di mana karakter kartubebas C:\Windows menentukan konten direktori.

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

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Menentukan filter untuk memenuhi syarat 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 daripada parameter lain, karena penyedia menerapkannya ketika cmdlet mendapatkan objek daripada memiliki PowerShell memfilter objek setelah diambil.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Force

Memaksa cmdlet untuk menghapus item yang tidak dapat diubah, seperti file tersembunyi atau baca-saja atau alias atau variabel baca-saja. Cmdlet tidak dapat menghapus alias atau variabel konstanta. Implementasi bervariasi dari penyedia ke penyedia. Untuk informasi selengkapnya, lihat about_Providers. Bahkan menggunakan parameter Paksa , cmdlet tidak dapat mengambil alih pembatasan keamanan.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

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

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

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

Untuk informasi selengkapnya, lihat about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Path

Menentukan jalur item yang dihapus. Karakter kartubebas diizinkan.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

-Recurse

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

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

Catatan

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

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Stream

Catatan

Parameter ini hanya tersedia di Windows.

Parameter Stream adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Remove-Item. Parameter ini hanya berfungsi dalam drive sistem file.

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 Unblock-File cmdlet .

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

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Input

String

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

Output

None

Cmdlet ini tidak mengembalikan output apa pun.

Catatan

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

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