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
De Remove-Item
cmdlet verwijdert een of meer items. 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 verwijderen met een bestandsnaamextensie
In dit voorbeeld worden alle bestanden met namen met een punt (.
) uit de C:\Test
map verwijderd. 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 uit de huidige map verwijderd die een .doc
bestandsnaamextensie hebben en een naam die niet bevat *1*
.
Remove-Item * -Include *.doc -Exclude *1*
Het jokerteken (*
) wordt gebruikt om de inhoud van de huidige map op te geven. De parameters Opnemen en Uitsluiten worden gebruikt om de bestanden op te geven die u wilt verwijderen.
Voorbeeld 3: Verborgen, alleen-lezen bestanden verwijderen
Met deze opdracht verwijdert u een bestand dat zowel verborgen als alleen-lezen is.
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
De parameter Path wordt 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 Recurse in Remove-Item
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 de waarde (*
), die de inhoud van de huidige map vertegenwoordigt. Het maakt gebruik van Opnemen om het CSV-bestandstype op te geven en recurse om het ophalen recursief te maken. Als u het bestandstype van het pad probeert op te geven, zoals -Path *.csv
, interpreteert de cmdlet het onderwerp van de zoekopdracht als een bestand dat geen onderliggende items heeft. 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 subsleutels en waarden. Deze gebruikt Remove-Item
om de sleutel te verwijderen. 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 vierkante haken 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 parameter stream 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 parameterGet-Item
Stream haalt de Zone.Identifier
stroom van het bestand opCopy-Script.ps1
. Remove-Item
gebruikt de parameter Stream om de Zone.Identifier
stroom van het bestand te verwijderen. Ten slotte geeft de Get-Item
cmdlet aan 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 een tekenreeksmatrix, een item of items op die door deze cmdlet worden uitgesloten in de bewerking. 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 Exclude 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.
Wanneer u Recurse met Exclude gebruikt, filtert Uitsluiten alleen resultaten van de huidige map. 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 FileSystem-provider is de enige geïnstalleerde PowerShell-provider die het gebruik van filters ondersteunt. 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 dat PowerShell de objecten filtert 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 niet op een andere manier kunnen worden gewijzigd, zoals verborgen of alleen-lezen bestanden of alleen-lezen aliassen of variabelen. De cmdlet kan geen constante aliassen of variabelen verwijderen. De implementatie verschilt van provider tot provider. Zie about_Providers voor meer informatie. Zelfs als u de parameter Force gebruikt, kan de cmdlet de beveiligingsbeperkingen niet negeren.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Hiermee geeft u, als een tekenreeksmatrix, een item of items op die deze cmdlet in de bewerking opneemt. 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 Include 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.
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 deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens vertellen PowerShell dat geen tekens als escape-reeksen worden geïnterpreteerd.
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 naar 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 in de opgegeven locaties en in alle onderliggende items van de locaties worden verwijderd.
Met de parameter Recurse worden mogelijk niet alle submappen of alle onderliggende items verwijderd. 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 parameter Stream is een dynamische parameter die door de bestandssysteemprovider wordt toegevoegd aan Remove-Item
.
Deze parameter werkt alleen in bestandssysteemstations.
U kunt gebruiken Remove-Item
om een alternatieve gegevensstroom te verwijderen, zoals Zone.Identifier
.
Het is echter niet de aanbevolen manier om beveiligingscontroles te elimineren 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
U kunt een tekenreeks die een pad bevat, maar geen letterlijk pad, doorsnijden 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 een 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 een map met items probeert te verwijderen zonder de parameter Recurse te gebruiken, wordt de cmdlet om bevestiging gevraagd. Als u gebruikt -Confirm:$false
, wordt de prompt niet onderdrukt. Dit is standaard.