Dela via


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 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. Den 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.

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

Exempel 3: Ta bort dolda, skrivskyddade filer

Det här kommandot tar bort en fil som både är 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 Forcekan 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 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.

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 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 (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 stream-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 dynamiska parametern Stream för cmdleten Get-Item för att hämta Zone.Identifier ström för filen "Copy-Script.ps1".

Det andra kommandot använder den dynamiska parametern Stream för cmdleten Remove-Item för att ta bort Zone.Identifier filströmmen.

Det tredje kommandot använder den dynamiska parametern Stream för cmdleten Get-Item för att kontrollera att Zone.Identifier dataström har tagits bort.

Det fjärde kommandot Get-Item cmdlet utan parametern Stream för att kontrollera 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.

Typ:SwitchParameter
Alias:cf
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Credential

Not

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.

Typ:PSCredential
Position:Named
Standardvärde:Current user
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Exclude

Anger objekt som denna cmdlet 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.

Typ:String[]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 Låta PowerShell filtrera objekten när de har hämtats.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 parametern Force kan cmdleten inte åsidosätta säkerhetsbegränsningar.

Typ:SwitchParameter
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:String[]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 med enkla citattecken. Enkla citattecken gör att PowerShell inte tolkar några tecken som escape-sekvenser.

Typ:String[]
Alias:PSPath
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Path

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

Typ:String[]
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken: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. Det här är ett känt problem. Som en lösning kan du prova att skicka resultatet av kommandot Get-ChildItem -Recurse för att Remove-Item, enligt beskrivningen i Exempel 4 i det här avsnittet.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Stream

Parametern Stream är en dynamisk parameter som FileSystem-providern lägger till i Remove-Item. Den här parametern fungerar bara på 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.

Typ:String[]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-UseTransaction

Innehåller kommandot i den aktiva transaktionen. Den här parametern är endast giltig när en transaktion pågår. Mer information finns i about_Transactions

Typ:SwitchParameter
Alias:usetx
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-WhatIf

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

Typ:SwitchParameter
Alias:wi
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

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

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 about_Providers.