Remove-Item
Hiermee verwijdert u de opgegeven items.
Syntaxis
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-Stream <String[]>]
[<CommonParameters>]
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-Stream <String[]>]
[<CommonParameters>]
Description
Met de cmdlet Remove-Item
worden een of meer items verwijderd.
Omdat het door veel providers wordt ondersteund, kan het veel verschillende typen items verwijderen, waaronder bestanden, mappen, registersleutels, variabelen, aliassen en functies.
Voorbeelden
Voorbeeld 1: Bestanden verwijderen met een bestandsnaamextensie
Met deze opdracht verwijdert u alle bestanden met namen met een punt ('.') uit de map C:\Test. 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
Met deze opdracht worden alle bestanden met de bestandsnaamextensie '.doc' uit de huidige map verwijderd en een naam die niet 1 bevat. Het jokerteken ('*') wordt gebruikt om de inhoud van de huidige map op te geven. Het maakt gebruik van de Include en Exclude parameters om de bestanden op te geven die moeten worden verwijderd.
Remove-Item * -Include *.doc -Exclude *1*
Voorbeeld 3: Verborgen, alleen-lezen bestanden verwijderen
Met deze opdracht wordt een bestand verwijderd dat zowel verborgen als alleen-lezenis. Hierbij wordt de parameter Path gebruikt om het bestand op te geven. Hierbij wordt de parameter Force gebruikt om deze te verwijderen. Zonder forcerenkunt u alleen-lezen of verborgen bestanden niet verwijderen.
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
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 de opdracht in dit voorbeeld Get-ChildItem
om de gewenste bestanden op te halen en gebruikt vervolgens de pijplijnoperator om deze door te geven aan Remove-Item
.
In de opdracht Get-ChildItem
heeft Pad de waarde *, 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.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
Voorbeeld 5: Subsleutels recursief verwijderen
Met deze opdracht verwijdert u de registersleutel OldApp en alle bijbehorende subsleutels en -waarden.
De sleutel wordt Remove-Item
gebruikt 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 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 streamparameter van de Remove-Item
-cmdlet gebruikt om een alternatieve gegevensstroom te verwijderen. De streamparameter wordt geïntroduceerd in Windows PowerShell 3.0.
De eerste opdracht maakt gebruik van de dynamische parameter Stream van de cmdlet Get-Item
om de Zone.Identifier- stroom van het bestand 'Copy-Script.ps1' op te halen.
De tweede opdracht maakt gebruik van de dynamische parameter Stream van de cmdlet Remove-Item
om de Zone.Identifier stroom van het bestand te verwijderen.
De derde opdracht maakt gebruik van de dynamische parameter Stream van de Get-Item
cmdlet om te controleren of de Zone.Identifier stream is verwijderd.
De vierde opdracht Get-Item
cmdlet zonder de parameter Stream om te controleren of het bestand niet is verwijderd.
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'.
At line:1 char:1
+ Get-Item 'C:\Test\Copy-Script.ps1' -Stream Zone.Identifier
+ [!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()]~~
+ CategoryInfo : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundE
xception
+ FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand
Get-Item C:\Test\Copy-Script.ps1
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/4/2011 11:15 AM 9436 Copy-Script.ps1
Parameters
-Confirm
U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliassen: | cf |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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 |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Exclude
Hiermee geeft u items op die deze cmdlet weglaat. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of patroon in, zoals *.txt. Jokertekens zijn toegestaan.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Filter
Hiermee geeft u een filter in de indeling of taal van de provider. De waarde van deze parameter komt in aanmerking voor de parameter Path.
De syntaxis van het filter, inclusief het gebruik van jokertekens, is afhankelijk van de provider. Filters zijn efficiënter dan andere parameters, omdat de provider deze 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Force
Hiermee dwingt u af dat de cmdlet items verwijdert die anders niet kunnen worden gewijzigd, zoals verborgen of alleen-lezenbestanden of alleen-lezenaliassen of variabelen. De cmdlet kan geen constante aliassen of variabelen verwijderen. Implementatie varieert van provider tot provider. Zie about_Providersvoor meer informatie. Zelfs als u de parameter Force gebruikt, kan de cmdlet geen beveiligingsbeperkingen overschrijven.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Include
Hiermee geeft u items te verwijderen. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of -patroon in, zoals '*.txt'. Jokertekens zijn toegestaan.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-LiteralPath
Hiermee geeft u een pad op van de items die worden verwijderd. In tegenstelling tot de parameter Path, wordt de waarde van LiteralPath- exact 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 geven PowerShell aan dat er geen tekens als escapereeksen moeten worden geïnterpreteerd.
Type: | String[] |
Aliassen: | PSPath |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Path
Hiermee geeft u een pad op van de items die worden verwijderd. Jokertekens zijn toegestaan.
Type: | String[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | True |
-Recurse
Geeft aan dat met deze cmdlet de items op de opgegeven locaties en in alle onderliggende items van de locaties worden verwijderd.
Wanneer deze wordt gebruikt met de parameter Include, verwijdert de parameter Recurse mogelijk niet alle submappen of alle onderliggende items.
Dit is een bekend probleem.
Probeer als tijdelijke oplossing de resultaten van de opdracht Get-ChildItem -Recurse
om te Remove-Item
, zoals beschreven in 'Voorbeeld 4' in dit onderwerp.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Stream
De parameter Stream is een dynamische parameter die de bestandssysteemprovider toevoegt aan Remove-Item
.
Deze parameter werkt alleen in bestandssysteemstations.
U kunt Remove-Item
gebruiken om een alternatieve gegevensstroom te verwijderen.
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 cmdlet Unblock-File
.
Deze parameter is geïntroduceerd in Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-UseTransaction
Bevat de opdracht in de actieve transactie. Deze parameter is alleen geldig wanneer een transactie wordt uitgevoerd. Zie about_Transactions voor meer informatie
Type: | SwitchParameter |
Aliassen: | usetx |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-WhatIf
Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliassen: | wi |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt een tekenreeks met een pad, maar niet een letterlijk pad, doorsluisen naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert geen uitvoer.
Notities
De cmdlet Remove-Item
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_Providersvoor meer informatie.