Remove-Item
Odstraní zadané položky.
Syntaxe
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>]
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-DeleteKey]
[<CommonParameters>]
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-DeleteKey]
[<CommonParameters>]
Remove-Item
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Item
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina 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 C:\Test
složky.
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 .doc
souboru a název, který neobsahuje *1*
.
Remove-Item * -Include *.doc -Exclude *1*
Pomocí zástupného znaku (*
) určuje obsah aktuální složky. K určení souborů, které se mají odstranit, používá parametry Zahrnout a Vyloučit .
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
K zadání souboru se používá parametr Path . K odstranění používá parametr Force . Bez vynucení nemůžete 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 má Remove-Item
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ředat .Remove-Item
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
Get-ChildItem
V příkazu má cesta hodnotu (*
), která představuje obsah aktuální složky. Pomocí příkazu Include určí typ souboru CSV a pomocí příkazu Recurse provede rekurzivní načtení. Pokud se pokusíte zadat typ souboru v cestě, například -Path *.csv
rutina interpretuje předmět hledání jako soubor, který neobsahuje žádné podřízené položky, a Recurse selže.
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. Slouží Remove-Item
k odebrání klíče. Zadaná cesta, ale nepovinný název parametru (Cesta) je vynechán.
Parametr Recurse odstraní veškerý obsah klíče OldApp rekurzivně. 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.
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-Item
Stream získá Zone.Identifier
datový proud Copy-Script.ps1
souboru. Remove-Item
pomocí parametru Stream odebere Zone.Identifier
stream souboru. Nakonec rutina Get-Item
ukazuje, že Zone.Identifier
se stream odstranil.
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:
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 úroveň přihlašovacích údajů 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 |
-DeleteKey
Jedná se o dynamický parametr zpřístupněný poskytovatelem certifikátu . Zprostředkovatel 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 najdete v tématu about_Certificate_Provider.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Exclude
Určuje, jako pole řetězců, položku nebo položky, které tato rutina vylučuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například *.txt
. Jsou povoleny zástupné znaky. 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ím filtruje pouze výsledky aktuálního adresáře. Pokud existují soubory, které odpovídají vzoru Vyloučení v podsložkách, odeberou se spolu s nadřazeným adresářem.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Filter
Určuje filtr, který má kvalifikovat parametr 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.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Force
Vynutí rutinu odebrat položky, které se jinak nedají 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 najdete v tématu about_Providers. I pomocí 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, jako pole řetězců, položku nebo položky, které tato rutina zahrnuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, 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 C:\Windows
adresáře.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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, aby nepřekládaly žádné znaky jako řídicí sekvence.
Další informace najdete v tématu about_Quoting_Rules.
Typ: | String[] |
Aliasy: | PSPath, LP |
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í.
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.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Stream
Jedná se o dynamický parametr, který zpřístupnil zprostředkovatel FileSystem . Tento parametr je k dispozici pouze ve Windows. Tento parametr nelze použít v kombinaci s parametrem Recurse .
Můžete použít Remove-Item
k odstranění alternativního datového proudu, 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 stažený soubor je bezpečný, použijte tuto rutinu Unblock-File
.
Tento parametr byl představen ve Windows PowerShellu 3.0. Od Windows PowerShellu 7.2 Remove-Item
můžete z adresářů a souborů odebrat alternativní datové proudy.
Další informace najdete v tématu about_FileSystem_Provider.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-WhatIf
Zobrazuje, co by se stalo při spuštění rutiny. 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
Řetězec, který obsahuje cestu, ale ne literálovou cestu, můžete do této rutiny převést.
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 fungovala 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.
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é.