Remove-Item

Hiermee verwijdert u de opgegeven items.

Syntax

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

Description

Met de Remove-Item cmdlet worden een of meer items verwijderd. Omdat het wordt ondersteund door veel providers, kan het veel verschillende typen items verwijderen, waaronder bestanden, mappen, registersleutels, variabelen, aliassen en functies.

Voorbeelden

Voorbeeld 1: Bestanden met een bestandsnaamextensie verwijderen

In dit voorbeeld worden alle bestanden verwijderd met namen die een punt (.) uit de C:\Test map bevatten. Omdat de opdracht een punt opgeeft, verwijdert de opdracht geen mappen of bestanden die geen bestandsnaamextensie hebben.

Remove-Item C:\Test\*.*

Voorbeeld 2: Enkele documentbestanden in een map verwijderen

In dit voorbeeld worden alle bestanden met een .doc bestandsnaamextensie en een naam verwijderd uit *1*de huidige map.

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

Het jokerteken (*) wordt gebruikt om de inhoud van de huidige map op te geven. Hierbij worden de parameters Opnemen en Uitsluiten gebruikt om de bestanden op te geven die moeten worden verwijderd.

Voorbeeld 3: Verborgen, alleen-lezen bestanden verwijderen

Met deze opdracht wordt een bestand verwijderd dat zowel verborgen als alleen-lezen is.

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

Hierbij wordt de padparameter gebruikt om het bestand op te geven. De parameter Force wordt gebruikt om deze te verwijderen. Zonder Force kunt u alleen-lezen of verborgen bestanden niet verwijderen.

Voorbeeld 4: Bestanden in submappen recursief verwijderen

Met deze opdracht worden alle CSV-bestanden in de huidige map en alle submappen recursief verwijderd.

Omdat de parameter Remove-ItemRecurse een bekend probleem heeft, gebruikt Get-ChildItem de opdracht in dit voorbeeld om de gewenste bestanden op te halen en gebruikt vervolgens de pijplijnoperator om deze door te geven aan Remove-Item.

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

In de Get-ChildItem opdracht heeft Pad een waarde van (*), die de inhoud van de huidige map vertegenwoordigt. Het maakt gebruik van Include om het CSV-bestandstype op te geven en gebruikt Recurse om het ophalen recursief te maken. Als u probeert het bestandstype op te geven, zoals -Path *.csv, interpreteert de cmdlet het onderwerp van de zoekopdracht als een bestand dat geen onderliggende items bevat en Recurse mislukt.

Notitie

Dit gedrag is opgelost in Windows-versies 1909 en hoger.

Voorbeeld 5: Subsleutels recursief verwijderen

Met deze opdracht verwijdert u de registersleutel 'OldApp' en alle bijbehorende subsleutels en -waarden. Hiermee wordt Remove-Item de sleutel verwijderd. Het pad is opgegeven, maar de optionele parameternaam (Pad) wordt weggelaten.

De parameter Recurse verwijdert alle inhoud van de sleutel 'OldApp' recursief . Als de sleutel subsleutels bevat en u de parameter Recurse weglaat, wordt u gevraagd om te bevestigen dat u de inhoud van de sleutel wilt verwijderen.

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

Voorbeeld 6: bestanden met speciale tekens verwijderen

In het volgende voorbeeld ziet u hoe u bestanden verwijdert die speciale tekens bevatten, zoals haakjes of haakjes.

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

Voorbeeld 7: Een alternatieve gegevensstroom verwijderen

In dit voorbeeld ziet u hoe u de dynamische parameter Stream van de Remove-Item cmdlet gebruikt om een alternatieve gegevensstroom te verwijderen. De streamparameter wordt geïntroduceerd in 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'.

De Stream-parameterGet-Item haalt de Zone.Identifier stroom van het Copy-Script.ps1 bestand op. Remove-Item gebruikt de Stream-parameter om de Zone.Identifier stroom van het bestand te verwijderen. Ten slotte toont de Get-Item cmdlet dat de Zone.Identifier stream is verwijderd.

Parameters

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert. Raadpleeg voor meer informatie de volgende artikelen:

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

-Credential

Notitie

Deze parameter wordt niet ondersteund door providers die zijn geïnstalleerd met PowerShell. Als u een andere gebruiker wilt imiteren of uw referenties wilt verhogen bij het uitvoeren van deze cmdlet, gebruikt u Invoke-Command.

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

-Exclude

Hiermee geeft u, als tekenreeksmatrix, een item of items op die deze cmdlet in de bewerking uitsluit. De waarde van deze parameter komt in aanmerking voor de path-parameter . Voer een padelement of -patroon in, zoals *.txt. Jokertekens zijn toegestaan. De parameter Uitsluiten is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoals C:\Windows\*, waarbij het jokerteken de inhoud van de C:\Windows map aangeeft.

Bij het gebruik van Recurse met Exclude worden alleen resultaten van de huidige map gefilterd. Als er bestanden zijn die overeenkomen met het patroon Uitsluiten in submappen, worden deze bestanden samen met de bovenliggende map verwijderd.

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

-Filter

Hiermee geeft u een filter om de path-parameter te kwalificeren. De bestandssysteemprovider is de enige geïnstalleerde PowerShell-provider die ondersteuning biedt voor het gebruik van filters. U vindt de syntaxis voor de filtertaal Bestandssysteem in about_Wildcards. Filters zijn efficiënter dan andere parameters, omdat de provider ze toepast wanneer de cmdlet de objecten ophaalt in plaats van PowerShell de objecten te filteren nadat ze zijn opgehaald.

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

-Force

Hiermee wordt de cmdlet gedwongen items te verwijderen die anders niet kunnen worden gewijzigd, zoals verborgen of alleen-lezen bestanden of alleen-lezen aliassen of variabelen. De cmdlet kan geen constante aliassen of variabelen verwijderen. Implementatie varieert van provider tot provider. Zie about_Providers voor meer informatie. Zelfs als u de parameter Force gebruikt, kan de cmdlet geen beveiligingsbeperkingen negeren.

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

-Include

Hiermee geeft u, als tekenreeksmatrix, een item of items op die deze cmdlet in de bewerking bevat. De waarde van deze parameter komt in aanmerking voor de path-parameter . Voer een padelement of -patroon in, zoals "*.txt". Jokertekens zijn toegestaan. De include-parameter is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoalsC:\Windows\*, waarbij het jokerteken de inhoud van de C:\Windows map aangeeft.

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

-LiteralPath

Hiermee geeft u een pad naar een of meer locaties. De waarde van LiteralPath wordt precies gebruikt zoals het wordt getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat er geen tekens moeten worden geïnterpreteerd als escapereeksen.

Zie about_Quoting_Rules voor meer informatie.

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

-Path

Hiermee geeft u een pad op van de items die worden verwijderd. Jokertekens zijn toegestaan.

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

-Recurse

Geeft aan dat met deze cmdlet de items op de opgegeven locaties en in alle onderliggende items van de locaties worden verwijderd.

De parameter Recurse verwijdert mogelijk niet alle submappen of alle onderliggende items. Dit is een bekend probleem.

Notitie

Dit gedrag is opgelost in Windows-versies 1909 en hoger.

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

-Stream

Notitie

Deze parameter is alleen beschikbaar in Windows.

De Stream-parameter is een dynamische parameter die de FileSystem-provider toevoegt aan Remove-Item. Deze parameter werkt alleen in bestandssysteemstations.

U kunt Remove-Item een alternatieve gegevensstroom verwijderen, zoals Zone.Identifier. Het is echter niet de aanbevolen manier om beveiligingscontroles te voorkomen die bestanden blokkeren die van internet worden gedownload. Als u controleert of een gedownload bestand veilig is, gebruikt u de Unblock-File cmdlet.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

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

Invoerwaarden

String

U kunt een tekenreeks die een pad bevat, maar geen letterlijk pad, doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert geen uitvoer.

Notities

De Remove-Item cmdlet is ontworpen om te werken met de gegevens die door elke provider worden weergegeven. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, typt u Get-PsProvider. Zie about_Providers voor meer informatie.

Wanneer u probeert een map te verwijderen die items bevat zonder de parameter Recurse te gebruiken, vraagt de cmdlet om bevestiging. Het gebruik -Confirm:$false onderdrukt de prompt niet. Dit is standaard.