Dela via


Remove-Item

Tar bort de angivna objekten.

Syntax

Path (Default) - FileSystem provider

Remove-Item
    [-Path] <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-Stream <String[]>]
    [<CommonParameters>]

LiteralPath - FileSystem provider

Remove-Item
    -LiteralPath <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-Stream <String[]>]
    [<CommonParameters>]

Path (Default) - Certificate provider

Remove-Item
    [-Path] <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-DeleteKey]
    [<CommonParameters>]

LiteralPath - Certificate provider

Remove-Item
    -LiteralPath <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-DeleteKey]
    [<CommonParameters>]

Path (Default) - All providers

Remove-Item
    [-Path] <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LiteralPath - All providers

Remove-Item
    -LiteralPath <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<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 exemplet tar bort alla filer med 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 dokumentfiler i en mapp

Det här exemplet tar bort alla filer som har ett .doc filnamnstillägg från den aktuella mappen och ett namn som inte innehåller *1*.

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

Det använder jokertecknet (*) för att ange innehållet i den aktuella mappen. Den använder parametrarna Include och Exclude för att ange vilka filer som ska tas bort.

Exempel 3: Ta bort dolda, skrivskyddade filer

Det här kommandot tar bort en fil som både är dold och skrivskyddad.

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

Den använder parametern Path för att ange filen. Den använder parametern Force för att ta bort den. Utan Forcekan du inte ta bort skrivskyddade eller dolda filer.

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 kommandot i det här exemplet Get-ChildItem för att hämta önskade filer och använder sedan pipelineoperatorn för att skicka dem till Remove-Item.

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

I kommandot Get-ChildItem 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 i 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.

Anmärkning

Det här beteendet har åtgärdats i Windows-versionerna 1909 och senare.

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 (Path) 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 dynamiska parametern Stream för cmdleten Remove-Item för att ta bort en alternativ dataström. Strömparametern introduceras i 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'.

Parametern StreamGet-Item hämtar Zone.Identifier strömmen för Copy-Script.ps1-filen. Remove-Item använder parametern Stream för att ta bort filens Zone.Identifier ström. Slutligen visar cmdleten Get-Item att Zone.Identifier strömmen har tagits bort.

Parametrar

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten. Mer information finns i följande artiklar:

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:jfr

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Credential

Anmärkning

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.

Parameteregenskaper

Typ:PSCredential
Standardvärde:Current user
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-DeleteKey

Det här är en dynamisk parameter som görs tillgänglig av providern Certificate. Providern Certificate och den här parametern är endast tillgängliga på Windows-plattformar.

När den tillhandahålls tar cmdleten bort den privata nyckeln när certifikatet tas bort.

Mer information finns i about_Certificate_Provider.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Exclude

Anger, som en strängmatris, ett objekt eller objekt som den här cmdleten exkluderar i åtgärden. 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. Parametern Exclude gäller endast när kommandot innehåller innehållet i ett objekt, till exempel C:\Windows\*, där jokertecknet anger innehållet i katalogen C:\Windows.

När du använder Recurse med Excludefiltrerar Exclude endast resultatet av den aktuella katalogen. Om det finns filer som matchar mönstret Exkludera i undermappar tas dessa filer bort tillsammans med dess överordnade katalog.

Parameteregenskaper

Typ:

String[]

Standardvärde:None
Stöder jokertecken:True
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Filter

Anger ett filter för att kvalificera parametern Path. FileSystem-providern är den enda installerade PowerShell-providern som stöder användning av filter. Du hittar syntaxen för FileSystem filterspråk i about_Wildcards. 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.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:True
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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 om_Leverantörer. Även om du använder parametern Force kan cmdleten inte åsidosätta säkerhetsbegränsningar.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Include

Anger, som en strängmatris, ett objekt eller objekt som den här cmdleten innehåller i åtgärden. 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. Parametern Include gäller endast när kommandot innehåller innehållet i ett objekt, till exempel C:\Windows\*, där jokertecknet anger innehållet i katalogen C:\Windows.

Parameteregenskaper

Typ:

String[]

Standardvärde:None
Stöder jokertecken:True
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-LiteralPath

Anger en sökväg till en eller flera platser. Värdet för LiteralPath- används exakt som det skrivs. Inga tecken tolkas som wildcards. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken gör att PowerShell inte tolkar några tecken som escape-sekvenser.

Mer information finns i about_Quoting_Rules.

Parameteregenskaper

Typ:

String[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:PSPath, SP

Parameteruppsättningar

LiteralPath
Position:Named
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-Path

Anger en sökväg för de objekt som tas bort. Jokertecken tillåts.

Parameteregenskaper

Typ:

String[]

Standardvärde:None
Stöder jokertecken:True
DontShow:False

Parameteruppsättningar

Path
Position:0
Obligatorisk:True
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-Recurse

Anger att denna cmdlet tar bort objekten på de angivna platserna och i alla underobjekt för platserna.

Parametern Recurse kanske inte tar bort alla undermappar eller alla barnobjekt. Det här är ett känt problem.

Anmärkning

Det här beteendet har åtgärdats i Windows version 1909 och senare.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Stream

Det här är en dynamisk parameter som görs tillgänglig av FileSystem-providern. Den här parametern är endast tillgänglig i Windows. Den här parametern kan inte användas i kombination med parametern Recurse.

Du kan använda Remove-Item för att ta bort en alternativ dataström, till exempel Zone.Identifier. 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. Från och med Windows PowerShell 7.2 kan Remove-Item ta bort alternativa dataströmmar från kataloger och filer.

Mer information finns i about_FileSystem_Provider.

Parameteregenskaper

Typ:

String[]

Standardvärde:None
Stöder jokertecken:True
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-WhatIf

Visar vad som skulle hända om kommandot körs. Cmdleten körs inte.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:Wi

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

Indata

String

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

PowerShell innehåller följande alias för Remove-Item:

  • Alla plattformar:
    • del
    • erase
    • rd
    • ri
  • Windows:
    • rm
    • rmdir

Cmdleten Remove-Item är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill visa en lista över tillgängliga leverantörer i sessionen skriver du Get-PSProvider. Mer information finns i om_Leverantörer.

När du försöker ta bort en mapp som innehåller objekt utan att använda parametern Recurse uppmanas cmdleten att bekräfta. Om du använder -Confirm:$false ignoreras inte uppmaningen. Detta är avsiktligt.