Sdílet prostřednictvím


Remove-Item

Odstraní zadané položky.

Syntaxe

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

Rutina Remove-Item odstraní jednu nebo více položek. Protože ho podporuje mnoho poskytovatelů, může odstranit mnoho různých typů položek, včetně souborů, složek, klíčů registru, proměnných, aliasů a funkcí.

Příklady

Příklad 1: Odstranění souborů, které mají příponu názvu souboru

Tento příkaz odstraní všechny soubory, které obsahují tečku (.) ze složky C:\Test. Protože příkaz určuje tečku, příkaz neodstraní složky ani soubory, které nemají příponu názvu souboru.

Remove-Item C:\Test\*.*

Příklad 2: Odstranění některých souborů dokumentu ve složce

Tento příkaz odstraní z aktuální složky všechny soubory, které mají příponu názvu souboru ".doc" a název, který neobsahuje hodnotu 1. Pomocí zástupného znaku (*) určuje obsah aktuální složky. Používá parametry Include a Exclude k určení souborů, které se mají odstranit.

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

Příklad 3: Odstranění skrytých souborů jen pro čtení

Tento příkaz odstraní soubor, který je skrytý i jen pro čtení . K zadání souboru používá parametr Path. K odstranění používá parametr Force. Bez Vynucenínelze odstranit jen pro čtení nebo skryté soubory.

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

Příklad 4: Rekurzivní odstranění souborů v podsložkách

Tento příkaz odstraní všechny soubory CSV v aktuální složce a všechny podsložky rekurzivně.

Vzhledem k tomu, že parametr Recurse v Remove-Item má známý problém, příkaz v tomto příkladu používá Get-ChildItem k získání požadovaných souborů a pak pomocí operátoru kanálu předá Remove-Item.

V příkazu Get-ChildItemCesta hodnotu *, která představuje obsah aktuální složky. K určení typu souboru CSV používá Include a k rekurzivnímu načtení používá Recurse.

Pokud se pokusíte zadat typ souboru cestu, například -Path *.csv, rutina interpretuje předmět hledání jako soubor, který neobsahuje podřízené položky, a Recurse selže.

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

Příklad 5: Rekurzivní odstranění podklíčů

Tento příkaz odstraní klíč registru OldApp a všechny jeho podklíče a hodnoty. K odebrání klíče používá Remove-Item. Je zadána cesta, ale volitelný název parametru (Cesta) je vynechán.

Parametr Recurse rekurzivně odstraní veškerý obsah klíče OldApp. Pokud klíč obsahuje podklíče a vynecháte parametr Recurse, zobrazí se výzva k potvrzení, že chcete odstranit obsah klíče.

Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse

Příklad 6: Odstranění souborů se speciálními znaky

Následující příklad ukazuje, jak odstranit soubory, které obsahují speciální znaky, jako jsou závorky nebo závorky.

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

Příklad 7: Odebrání alternativního datového proudu

Tento příklad ukazuje, jak pomocí dynamického parametru Stream rutiny Remove-Item odstranit alternativní datový proud. Parametr streamu se zavádí ve Windows PowerShellu 3.0.

První příkaz pomocí dynamického parametru Stream rutiny Get-Item získá datový proud Zone.Identifier souboru "Copy-Script.ps1".

Druhý příkaz pomocí dynamického parametru Stream rutiny odebere stream souboru Zone.Identifier.

Třetí příkaz používá dynamický parametr Stream rutiny Get-Item k ověření odstranění datového proudu Zone.Identifier.

Čtvrtý příkaz Get-Item rutinu bez parametru Stream k ověření, že soubor není odstraněn.

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

Parametry

-Confirm

Před spuštěním rutiny vás vyzve k potvrzení.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Credential

Poznámka

Tento parametr nejsou podporovány žádnými poskytovateli nainstalovanými v PowerShellu. Pokud chcete zosobnit jiného uživatele nebo zvýšit oprávnění při spuštění této rutiny, použijte Invoke-Command.

Typ:PSCredential
Position:Named
Default value:Current user
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Exclude

Určuje položky, které tato rutina vynechá. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například *.txt. Jsou povoleny zástupné znaky.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Filter

Určuje filtr ve formátu nebo jazyce poskytovatele. Hodnota tohoto parametru kvalifikuje parametr Path.

Syntaxe filtru, včetně použití zástupných znaků, závisí na poskytovateli. Filtry jsou efektivnější než jiné parametry, protože je poskytovatel použije, když rutina získá objekty místo toho, aby objekty po jejich načtení vyfiltroval PowerShell.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Force

Vynutí rutinu odebrat položky, které nelze jinak změnit, jako jsou skryté nebo jen pro čtení nebo aliasy nebo proměnné jen pro čtení. Rutina nemůže odebrat konstantní aliasy ani proměnné. Implementace se liší od zprostředkovatele po zprostředkovatele. Další informace naleznete v tématu about_Providers. I při použití parametru Force nemůže rutina přepsat omezení zabezpečení.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Include

Určuje položky, které se mají odstranit. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například "*.txt". Jsou povoleny zástupné znaky.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-LiteralPath

Určuje cestu k odebraných položek. Na rozdíl od parametru Path se hodnota LiteralPath používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence.

Typ:String[]
Aliasy:PSPath
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Path

Určuje cestu k odebraných položek. Jsou povoleny zástupné znaky.

Typ:String[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

-Recurse

Označuje, že tato rutina odstraní položky v zadaných umístěních a ve všech podřízených položkách umístění.

Při použití s parametrem Include nemusí parametr Recurse odstranit všechny podsložky nebo všechny podřízené položky. Jedná se o známý problém. Jako alternativní řešení zkuste výsledky příkazu Get-ChildItem -RecurseRemove-Item, jak je popsáno v příkladu 4 v tomto tématu.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Stream

Parametr Stream je dynamický parametr, který zprostředkovatel FileSystem přidává do Remove-Item. Tento parametr funguje jenom na jednotkách systému souborů.

K odstranění alternativního datového streamu můžete použít Remove-Item. Není to však doporučený způsob, jak eliminovat kontroly zabezpečení, které blokují soubory stažené z internetu. Pokud ověříte, že je stažený soubor v bezpečí, použijte rutinu Unblock-File.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-UseTransaction

Zahrnuje příkaz v aktivní transakci. Tento parametr je platný pouze v případě, že probíhá transakce. Další informace najdete v tématu about_Transactions

Typ:SwitchParameter
Aliasy:usetx
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-WhatIf

Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

String

Řetězec, který obsahuje cestu, ale ne literálovou cestu, můžete do této rutiny převést.

Výstupy

None

Tato rutina nevrací žádný výstup.

Poznámky

Rutina Remove-Item je navržená tak, aby fungovala s daty vystavenými jakýmkoli poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných v relaci, zadejte Get-PsProvider. Další informace naleznete v tématu about_Providers.