Remove-Item

Odstraní zadané položky.

Syntax

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

Description

Rutina Remove-Item odstraní jednu nebo více položek. Protože ji 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ů s libovolnou příponou názvu souboru

Tento příklad odstraní všechny soubory s názvy, které obsahují tečku C:\Test (.) ze složky. Vzhledem k tomu, že příkaz určuje tečku, 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ů dokumentů ve složce

Tento příklad odstraní z aktuální složky všechny soubory, které mají příponu .doc názvu souboru a název, který neobsahuje *1*.

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

Používá zástupný znak (*) k určení obsahu aktuální složky. Používá parametry Include a Exclude k určení souborů, které se mají odstranit.

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

Tento příkaz odstraní soubor, který je skrytý i jen pro čtení.

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

Používá parametr Path k určení souboru. K jeho odstranění používá parametr Force . Bez vynucení nelze odstranit soubory jen pro čtení nebo skryté soubory.

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 souboru Remove-Item má známý problém, příkaz v tomto příkladu použije Get-ChildItem k získání požadovaných souborů a pak použije operátor kanálu k jejich předání do Remove-Item.

Get-ChildItem * -Include *.csv -Recurse | 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čítání se používá Funkce Recurse . Pokud se pokusíte zadat typ souboru v cestě, například -Path *.csv, rutina interpretuje předmět hledání jako soubor, který nemá žádné podřízené položky, a Recurse selže.

Poznámka

Toto chování bylo opraveno ve Windows verze 1909 a novější.

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

Tento příkaz odstraní klíč registru OldApp a všechny jeho podklíče a hodnoty. Používá Remove-Item k odebrání klíče. Cesta je zadána, 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 obsah klíče odstranit.

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 hranaté 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ý stream. Parametr streamu je zaveden v 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'.

Parametr Get-ItemStream získá Zone.Identifier datový proud Copy-Script.ps1 souboru. Remove-Item pomocí parametru Stream odebere Zone.Identifier datový proud souboru. Nakonec rutina Get-Item ukazuje, že Zone.Identifier datový proud byl odstraněn.

Parametry

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení. Další informace najdete v následujících článcích:

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Poznámka

Tento parametr není podporován žádnými poskytovateli nainstalovanými pomocí PowerShellu. Pokud chcete zosobnit jiného uživatele nebo zvýšit úroveň přihlašovacích údajů při spuštění této rutiny, použijte Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Accept pipeline input:True
Accept wildcard characters:False

-Exclude

Určuje jako pole řetězců položku nebo položky, které tato rutina v operaci vylučuje. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například *.txt. Zástupné znaky jsou povolené. Parametr Exclude je účinný pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah C:\Windows adresáře.

Při použití funkce Recurse s vyloučenímvyfiltruje funkce Vyloučit pouze výsledky aktuálního adresáře. Pokud existují soubory, které v podsložkách odpovídají vzoru Vyloučit , odeberou se spolu s nadřazeným adresářem.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Určuje filtr pro kvalifikaci parametru Path . Zprostředkovatel FileSystem je jediným nainstalovaným zprostředkovatelem PowerShellu, který podporuje použití filtrů. Syntaxi pro jazyk filtru FileSystem najdete v about_Wildcards. Filtry jsou efektivnější než jiné parametry, protože zprostředkovatel je použije, když rutina získá objekty, místo aby objekty po načtení vyfiltroval PowerShell.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Force

Vynutí, aby rutina odebrala položky, které nelze jinak změnit, například skryté soubory nebo soubory jen pro čtení nebo aliasy nebo proměnné jen pro čtení. Rutina nemůže odebrat konstantní aliasy ani proměnné. Implementace se u jednotlivých zprostředkovatelů liší. Další informace najdete v tématu about_Providers. Ani pomocí parametru Force nemůže rutina přepsat omezení zabezpečení.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Určuje jako pole řetězců položku nebo položky, které tato rutina zahrnuje do operace. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například "*.txt". Zástupné znaky jsou povolené. Parametr Include je účinný pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah C:\Windows adresáře.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Určuje cestu k jednomu nebo více umístěním. Hodnota LiteralPath se 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, že nemá interpretovat žádné znaky jako řídicí sekvence.

Další informace najdete v tématu about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Path

Určuje cestu k odebraných položkách. Zástupné znaky jsou povolené.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters: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í.

Parametr Recurse nemusí odstranit všechny podsložky nebo všechny podřízené položky. Jedná se o známý problém.

Poznámka

Toto chování bylo opraveno ve Windows verze 1909 a novějších.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Stream

Poznámka

Tento parametr je k dispozici pouze ve Windows.

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

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

Tento parametr byl zaveden v Windows PowerShell 3.0. Od Windows PowerShell 7.2 Remove-Item může odebírat alternativní datové proudy z adresářů i souborů.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

String

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

Výstupy

None

Tato rutina nevrátí žádný výstup.

Poznámky

PowerShell obsahuje následující aliasy pro Remove-Item:

  • Všechny platformy:
    • del
    • erase
    • rd
    • ri
  • Windows:
    • rm
    • rmdir

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

Při pokusu o odstranění složky, která obsahuje položky bez použití parametru Recurse , rutina zobrazí výzvu k potvrzení. Při použití -Confirm:$false se výzva nepotlačuje. Toto chování je úmyslné.