Remove-Item
Usuwa określone elementy.
Składnia
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>]
Opis
Polecenie cmdlet Remove-Item usuwa co najmniej jeden element. Ponieważ jest obsługiwany przez wielu dostawców, może usuwać wiele różnych typów elementów, w tym plików, folderów, kluczy rejestru, zmiennych, aliasów i funkcji.
Przykłady
Przykład 1. Usuwanie plików, które mają dowolne rozszerzenie pliku
W tym przykładzie usuwane są wszystkie pliki z nazwami, które zawierają kropkę (.) z folderu C:\Test.
Ponieważ polecenie określa kropkę, polecenie nie usuwa folderów ani plików, które nie mają rozszerzenia pliku.
Remove-Item C:\Test\*.*
Przykład 2. Usuwanie plików dokumentów w folderze
Ten przykład usuwa z bieżącego folderu wszystkie pliki, które mają rozszerzenie .doc pliku i nazwę, która nie zawiera *1*.
Remove-Item * -Include *.doc -Exclude *1*
Używa symbolu wieloznakowego (*) do określenia zawartości bieżącego folderu. Używa on parametrów Include i Exclude w celu określenia plików do usunięcia.
Przykład 3. Usuwanie ukrytych, tylko do odczytu plików
To polecenie usuwa plik, który jest ukryty i tylko do odczytu.
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
Parametr ścieżka jest używany do określania pliku. Używa parametru Force, aby go usunąć. Bez Forcenie można usunąć plików tylko do odczytu ani plików ukrytych .
Przykład 4. Rekursywne usuwanie plików w podfolderach
To polecenie usuwa wszystkie pliki CSV w bieżącym folderze i wszystkie podfoldery rekursywnie.
Ponieważ parametr Recurse w Remove-Item ma znany błąd, polecenie w tym przykładzie używa Get-ChildItem do pobrania żądanych plików, a następnie operatorem potoku przekazuje je do Remove-Item.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
W poleceniu Get-ChildItemPath ma wartość (*), która reprezentuje zawartość bieżącego folderu. Używa Include do określenia typu pliku CSV i używa Recurse, aby pobieranie było rekursywne. Jeśli spróbujesz określić typ pliku w ścieżce, na przykład -Path *.csv, cmdlet interpretuje przedmiot wyszukiwania jako plik, który nie ma elementów podrzędnych, a rekurencja dla kończy się niepowodzeniem.
Uwaga / Notatka
To zachowanie zostało naprawione w systemie Windows w wersji 1909 i nowszej.
Przykład 5. Rekursywne usuwanie podkluczy
To polecenie usuwa klucz rejestru "OldApp" i wszystkie jego podklucze i wartości. Używa Remove-Item do usunięcia klucza. Ścieżka jest określona, ale opcjonalna nazwa parametru (Ścieżka) zostanie pominięta.
Parametr Recurse usuwa całą zawartość klucza "OldApp" rekursywnie. Jeśli klucz zawiera podklucze i pominięto parametr Recurse, zostanie wyświetlony monit o potwierdzenie usunięcia zawartości klucza.
Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse
Przykład 6. Usuwanie plików ze znakami specjalnymi
W poniższym przykładzie pokazano, jak usunąć pliki zawierające znaki specjalne, takie jak nawiasy kwadratowe lub nawiasy okrągłe.
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
Przykład 7. Usuwanie alternatywnego strumienia danych
W tym przykładzie pokazano, jak użyć parametru dynamicznego usługi Stream polecenia cmdlet Remove-Item w celu usunięcia alternatywnego strumienia danych. Parametr strumienia jest wprowadzany w programie 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 StreamGet-Item pobiera strumień Zone.Identifier pliku Copy-Script.ps1.
Remove-Item używa parametru Stream, aby usunąć strumień Zone.Identifier pliku. Na koniec polecenie cmdlet Get-Item pokazuje, że strumień Zone.Identifier został usunięty.
Parametry
-Confirm
Prosi o potwierdzenie przed uruchomieniem cmdletu. Aby uzyskać więcej informacji, zobacz następujące artykuły:
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | por |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Credential
Uwaga / Notatka
Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby podszyć się pod innego użytkownika lub podnieść swoje uprawnienia podczas uruchamiania tego cmdletu, użyj Invoke-Command.
Właściwości parametru
| Typ: | PSCredential |
| Domyślna wartość: | Current user |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-DeleteKey
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Dostawca certyfikatu i ten parametr są dostępny tylko na platformach Windows.
Gdy jest używane, polecenie cmdlet usuwa klucz prywatny po usunięciu certyfikatu.
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Exclude
Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet wyklucza w operacji. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak *.txt. Symbole wieloznaczne są dozwolone. Parametr Exclude jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*, gdzie symbol wieloznaczny określa zawartość katalogu C:\Windows.
W przypadku używania Rekurencja z Wykluczaniei Wykluczanie filtruje tylko wyniki w bieżącym katalogu. Jeśli istnieją pliki zgodne ze wzorcem Wyklucz w podfolderach, te pliki są usuwane wraz z katalogiem nadrzędnym.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Filter
Określa filtr w celu kwalifikacji parametru ścieżki. Dostawca systemu plików
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Force
Wymusza usunięcie elementów, których nie można inaczej zmienić, takich jak ukryte pliki, pliki tylko do odczytu, aliasy lub zmienne tylko do odczytu. Polecenie cmdlet nie może usunąć stałych aliasów ani zmiennych. Implementacja różni się od dostawcy do dostawcy. Aby uzyskać więcej informacji, zobacz about_Providers. Nawet, gdy używa się parametru Force, polecenie cmdlet nie jest w stanie zastąpić ograniczeń zabezpieczeń.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Include
Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet zawiera w operacji. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak "*.txt". Symbole wieloznaczne są dozwolone. Parametr Include jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*, gdzie symbol wieloznaczny określa zawartość katalogu C:\Windows.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-LiteralPath
Określa ścieżkę do co najmniej jednej lokalizacji. Wartość LiteralPath jest używana dokładnie tak, jak jest typowana. Żadne znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze cudzysłowy wskazują programowi PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | PSPath, LP |
Zestawy parametrów
LiteralPath
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Path
Określa ścieżkę usuwanych elementów. Symbole wieloznaczne są dozwolone.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
Path
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Recurse
Wskazuje, że to polecenie cmdlet usuwa elementy z określonych lokalizacji oraz ze wszystkich podrzędnych elementów tych lokalizacji.
Parametr Recurse może nie usuwać wszystkich podfolderów ani wszystkich elementów podrzędnych. Jest to znany problem.
Uwaga / Notatka
To zachowanie zostało naprawione w systemach Windows w wersji 1909 i nowszych.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Stream
Jest to parametr dynamiczny udostępniany przez dostawcę systemu plików. Ten parametr jest dostępny tylko w systemie Windows. Tego parametru nie można używać w połączeniu z parametrem Recurse.
Możesz użyć Remove-Item do usunięcia alternatywnego strumienia danych, takiego jak Zone.Identifier.
Jednak nie jest to zalecany sposób wyeliminowania kontroli zabezpieczeń, które blokują pliki pobierane z Internetu. Jeśli sprawdzisz, czy pobrany plik jest bezpieczny, użyj polecenia cmdlet Unblock-File.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0. Począwszy od Windows PowerShell 7.2, Remove-Item może usuwać alternatywne strumienie danych zarówno z katalogów, jak i z plików.
Aby uzyskać więcej informacji, zobacz about_FileSystem_Provider.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-WhatIf
Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie został uruchomiony.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Wi |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
String
Do tego polecenia cmdlet można przesłać ciąg tekstowy zawierający ścieżkę, ale nie literalną ścieżkę.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
Program PowerShell zawiera następujące aliasy dla Remove-Item:
- Wszystkie platformy:
deleraserdri
- Windows:
rmrmdir
Polecenie cmdlet Remove-Item jest zaprojektowane do pracy z danymi udostępnianymi przez dowolnego providera. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz Get-PSProvider. Aby uzyskać więcej informacji, zobacz about_Providers.
Podczas próby usunięcia folderu zawierającego elementy bez użycia parametru Recurse, polecenie cmdlet poprosi o potwierdzenie. Użycie -Confirm:$false nie pomija komunikatu. Jest to celowe.