Remove-Item
Tar bort de angivna objekten.
Syntax
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
Cmdleten Remove-Item
tar bort ett eller flera objekt.
Eftersom det stöds av många leverantörer kan det ta bort många olika typer av objekt, inklusive filer, mappar, registernycklar, variabler, alias och funktioner.
Exempel
Exempel 1: Ta bort filer som har filnamnstillägg
Det här kommandot tar bort alla filer som har namn som innehåller en punkt ('.') från mappen "C:\Test". Eftersom kommandot anger en punkt tar kommandot inte bort mappar eller filer som inte har något filnamnstillägg.
Remove-Item C:\Test\*.*
Exempel 2: Ta bort några av dokumentfilerna i en mapp
Det här kommandot tar bort alla filer som har filnamnstillägget ".doc" från den aktuella mappen och ett namn som inte innehåller 1. Det använder jokertecknet ('*') för att ange innehållet i den aktuella mappen. Den använder parametrarna Inkludera och Exkludera för att ange vilka filer som ska tas bort.
Remove-Item * -Include *.doc -Exclude *1*
Exempel 3: Ta bort dolda, skrivskyddade filer
Det här kommandot tar bort en fil som är både dold och skrivskyddad. Den använder parametern Path för att ange filen. Den använder parametern Force för att ta bort den. Utan Force kan du inte ta bort skrivskyddade eller dolda filer.
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
Exempel 4: Ta bort filer i undermappar rekursivt
Det här kommandot tar bort alla CSV-filer i den aktuella mappen och alla undermappar rekursivt.
Eftersom parametern Recurse i Remove-Item
har ett känt problem använder Get-ChildItem
kommandot i det här exemplet för att hämta önskade filer och använder sedan pipelineoperatorn för att skicka dem till Remove-Item
.
Get-ChildItem
I kommandot har Path värdet '*', som representerar innehållet i den aktuella mappen.
Den använder Inkludera för att ange CSV-filtypen och använder Recurse för att göra hämtningen rekursiv.
Om du försöker ange filtypen sökvägen, till exempel -Path *.csv
, tolkar cmdleten ämnet för sökningen som en fil som inte har några underordnade objekt, och Recurse misslyckas.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
Exempel 5: Ta bort undernycklar rekursivt
Det här kommandot tar bort registernyckeln "OldApp" och alla dess undernycklar och värden.
Den använder Remove-Item
för att ta bort nyckeln.
Sökvägen har angetts, men det valfria parameternamnet (Sökväg) utelämnas.
Parametern Recurse tar bort allt innehåll i "OldApp"-nyckeln rekursivt. Om nyckeln innehåller undernycklar och du utelämnar parametern Recurse uppmanas du att bekräfta att du vill ta bort innehållet i nyckeln.
Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse
Exempel 6: Ta bort filer med specialtecken
I följande exempel visas hur du tar bort filer som innehåller specialtecken som hakparenteser eller parenteser.
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
Exempel 7: Ta bort en alternativ dataström
Det här exemplet visar hur du använder den Stream dynamiska parametern för cmdleten Remove-Item
för att ta bort en alternativ dataström. Strömparametern introduceras i Windows PowerShell 3.0.
Det första kommandot använder den Stream dynamiska parametern för cmdleten Get-Item
för att hämta Zone.Identifier-dataströmmen för filen "Copy-Script.ps1".
Det andra kommandot använder den Stream dynamiska parametern för cmdleten Remove-Item
för att ta bort filens Zone.Identifier-ström.
Det tredje kommandot använder den Stream dynamiska parametern för cmdleten Get-Item
för att kontrollera att Zone.Identifier-dataströmmen har tagits bort.
Den fjärde kommando-cmdleten Get-Item
utan parametern Stream för att verifiera att filen inte har tagits bort.
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
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Anteckning
Den här parametern stöds inte av några leverantörer som är installerade med PowerShell. Om du vill personifiera en annan användare eller höja dina autentiseringsuppgifter när du kör den här cmdleten använder du Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Exclude
Anger objekt som cmdleten utelämnar. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel *.txt. Jokertecken tillåts.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Anger ett filter i providerns format eller språk. Värdet för den här parametern kvalificerar parametern Path .
Syntaxen för filtret, inklusive användningen av jokertecken, beror på providern. Filter är effektivare än andra parametrar eftersom providern tillämpar dem när cmdleten hämtar objekten i stället för att PowerShell filtrerar objekten när de har hämtats.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Tvingar cmdleten att ta bort objekt som annars inte kan ändras, till exempel dolda eller skrivskyddade filer eller skrivskyddade alias eller variabler. Cmdleten kan inte ta bort konstanta alias eller variabler. Implementeringen varierar från leverantör till leverantör. Mer information finns i about_Providers. Även om du använder force-parametern kan cmdleten inte åsidosätta säkerhetsbegränsningar.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Anger objekt som ska tas bort. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel "*.txt". Jokertecken tillåts.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Anger en sökväg för de objekt som tas bort. Till skillnad från parametern Path används värdet för LiteralPath precis som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den inom enkla citattecken. Enkla citattecken säger till PowerShell att inte tolka några tecken som escape-sekvenser.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Anger en sökväg för de objekt som tas bort. Jokertecken tillåts.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Recurse
Anger att den här cmdleten tar bort objekten på de angivna platserna och i alla underordnade objekt på platserna.
När den används med parametern Include kanske parametern Recurse inte tar bort alla undermappar eller alla underordnade objekt.
Detta är ett känt problem.
Som en lösning kan du prova att skicka resultatet av kommandot till Remove-Item
, enligt beskrivningen Get-ChildItem -Recurse
i Exempel 4 i det här avsnittet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Stream
Parametern Stream är en dynamisk parameter som FileSystem-providern lägger till i Remove-Item
.
Den här parametern fungerar bara i filsystemenheter.
Du kan använda Remove-Item
för att ta bort en alternativ dataström.
Det är dock inte det rekommenderade sättet att eliminera säkerhetskontroller som blockerar filer som laddas ned från Internet.
Om du kontrollerar att en nedladdad fil är säker använder du cmdleten Unblock-File
.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseTransaction
Inkluderar kommandot i den aktiva transaktionen. Den här parametern är bara giltig medan en transaktion pågår. Mer information finns i about_Transactions
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka en sträng som innehåller en sökväg, men inte en literal sökväg, till den här cmdleten.
Utdata
None
Den här cmdleten returnerar inga utdata.
Kommentarer
Cmdleten Remove-Item
är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill visa en lista över de leverantörer som är tillgängliga i sessionen skriver du Get-PsProvider
. Mer information finns i about_Providers.