Sdílet prostřednictvím


Remove-Item

Odstraní zadané položky.

Syntaxe

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

Příkaz Remove-Item odstraní jednu nebo více položek. Protože je podporován mnoha poskytovateli, 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 souboru

Tento příklad odstraní všechny soubory s názvy, 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 souboru.

Remove-Item C:\Test\*.*

Příklad 2: Odstranění souborů dokumentů ve složce

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

Remove-Item * -Include *.doc -Exclude *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.

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

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

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

K zadání souboru používá parametr Path. K odstranění používá parametr Force. Bez vynucenínemůžete odstranit soubory pouze pro čtení ani 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 Remove-Item má známý problém, příkaz v tomto příkladu používá Get-ChildItem k tomu, aby získal požadované soubory, a poté je pomocí operátoru kanálu předá 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čtení používá Recurse. Pokud se pokusíte zadat typ souboru v cestě, například -Path *.csv, rutina interpretuje předmět hledání jako soubor, který neobsahuje podřízené položky, a Recurse se nezdaří.

Poznámka:

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

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. 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 hranaté nebo kulaté 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.

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 StreamGet-Item získá datový proud Zone.Identifier souboru Copy-Script.ps1. Remove-Item pomocí parametru Stream odebere stream Zone.Identifier souboru. Nakonec rutina Get-Item ukazuje, že datový proud Zone.Identifier byl odstraněn.

Parametry

-Confirm

Před spuštěním cmdletu vás vyzve k potvrzení. Další informace najdete v následujících článcích:

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:viz

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:PSCredential
Default value:Current user
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-DeleteKey

Jedná se o dynamický parametr zpřístupněný poskytovatelem certifikátu. Poskytovatel certifikátu a tento parametr jsou k dispozici pouze na platformách Windows.

Po zadání rutina odstraní privátní klíč při odstranění certifikátu.

Další informace naleznete v tématu about_Certificate_Provider.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Exclude

Určuje, jako pole řetězců, položku nebo položky, které tento příkaz vylučuje z operace. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například *.txt. Jsou povoleny zástupné znaky. Parametr Exclude je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah adresáře C:\Windows.

Při použití Recurse s VyloučitVyloučit filtruje pouze výsledky aktuálního adresáře. Pokud existují soubory, které odpovídají vzoru Vyloučit v podsložkách, odeberou se tyto soubory společně s nadřazeným adresářem.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:True
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Filter

Určuje filtr pro kvalifikaci parametru Path. Zprostředkovatel FileSystem je jediným nainstalovaným poskytovatelem PowerShellu, který podporuje použití filtrů. Syntaxi jazyka filtru FileSystem najdete v about_Wildcards. 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í vyfiltrovala PowerShell.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:True
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Force

Vynutí příkaz cmdlet odstranit položky, které nelze jinak změnit, jako jsou skryté nebo jen pro čtení soubory, aliasy nebo proměnné. Příkaz cmdlet nemůže odebrat konstantní aliasy ani proměnné. Implementace se liší od zprostředkovatele po zprostředkovatele. Pro více informací viz about_Providers. I když používáte parametr Force, rutina nemůže přepsat omezení zabezpečení.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Include

Určuje, jako pole řetězců, jednu nebo více položek, které tento cmdlet zahrnuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například "*.txt". Jsou povoleny zástupné znaky. Parametr Include je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah adresáře C:\Windows.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:True
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-LiteralPath

Určuje cestu k jednomu nebo více místům. Hodnota LiteralPath se používá přesně tak, jak je zadána. Žádný znak není interpretován jako zástupný znak. Pokud cesta obsahuje únikové znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby žádné znaky neinterpretoval jako únikové sekvence.

Další informace najdete v about_Quoting_Rules.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:PSPath, PO

Sady parametrů

LiteralPath
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-Path

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

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:True
DontShow:False

Sady parametrů

Path
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-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 těchto 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 verzích Windows 1909 a novějších.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Stream

Toto je dynamický parametr zpřístupněný poskytovatelem FileSystem. Tento parametr je k dispozici pouze ve Windows. Tento parametr nelze použít v kombinaci s parametrem Recurse.

Pomocí Remove-Item můžete odstranit alternativní datový proud, například Zone.Identifier. Není to ale 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. Od Windows PowerShellu 7.2 může Remove-Item odebrat alternativní datové proudy z adresářů i souborů.

Pro více informací se podívejte na about_FileSystem_Provider.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:True
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-WhatIf

Ukazuje, co se stane, když se příkaz spustí. Cmdlet se nespustil.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Wi

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

String

Můžete předat řetězec, který obsahuje cestu, ale ne doslovnou cestu, do tohoto příkazu.

Výstupy

None

Tento cmdlet 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 fungovala s daty vystavenými jakýmkoli poskytovatelem. Chcete-li zobrazit seznam poskytovatelů dostupných ve vaší relaci, napište Get-PSProvider. Pro více informací viz about_Providers.

Když se pokusíte odstranit složku obsahující položky bez použití parametru Recurse, rutina zobrazí výzvu k potvrzení. Použití -Confirm:$false nepotlačí výzvu. Toto chování je úmyslné.