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-ChildItem
má cesta 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-Item
Stream 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
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é.
Související odkazy
Váš názor
Odeslat a zobrazit názory pro