Remove-Item
Usuwa określone elementy.
Składnia
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>]
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 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
Do określenia pliku jest używany parametr ścieżka. Używa parametru Force, aby go usunąć. Bez Forcenie można usunąć tylko do odczytu ani ukrytych plików.
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 problem, polecenie w tym przykładzie używa Get-ChildItem
do pobrania żądanych plików, a następnie używa operatora potoku do przekazania ich do Remove-Item
.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
W poleceniu Get-ChildItem
Path ma wartość (*
), która reprezentuje zawartość bieżącego folderu. Używa Include do określenia typu pliku CSV i używa rekurse, aby rekursywne pobieranie. Jeśli spróbujesz określić typ pliku w ścieżce, na przykład -Path *.csv
, polecenie cmdlet interpretuje temat wyszukiwania jako plik, który nie zawiera elementów podrzędnych, a cykliczne kończy się niepowodzeniem.
Nuta
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 lub nawiasy.
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
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet. Aby uzyskać więcej informacji, zobacz następujące artykuły:
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Nuta
Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby personifikować innego użytkownika lub podnieść poziom poświadczeń podczas uruchamiania tego polecenia cmdlet, użyj Invoke-Command.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | Current user |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-DeleteKey
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Dostawca certyfikatów i ten parametr są dostępne tylko na platformach Windows.
Po udostępnieniu polecenia cmdlet polecenie cmdlet usuwa klucz prywatny po usunięciu certyfikatu.
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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
. Dozwolone są symbole wieloznaczne. 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 cyklicznego z Wykluczaniewykluczanie filtruje tylko wyniki bieżącego katalogu. Jeśli istnieją pliki zgodne ze wzorcem Wyklucz w podfolderach, te pliki są usuwane wraz z katalogiem nadrzędnym.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Filter
Określa filtr, aby zakwalifikować parametr ścieżki. Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell obsługującym korzystanie z filtrów. Składnię języka filtru systemu plików można znaleźć w about_Wildcards. Filtry są bardziej wydajne niż inne parametry, ponieważ dostawca stosuje je, gdy polecenie cmdlet pobiera obiekty, zamiast filtrować obiekty programu PowerShell po ich pobraniu.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Force
Wymusza usunięcie elementów, których nie można zmienić, takich jak ukryte lub tylko do odczytu pliki albo 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 przy użyciu parametru Force polecenie cmdlet nie może zastąpić ograniczeń zabezpieczeń.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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"
. Dozwolone są symbole wieloznaczne. 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
.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-LiteralPath
Określa ścieżkę do co najmniej jednej lokalizacji. Wartość LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.
Typ: | String[] |
Aliasy: | PSPath, LP |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Path
Określa ścieżkę usuwanych elementów. Dozwolone są symbole wieloznaczne.
Typ: | String[] |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | True |
-Recurse
Wskazuje, że to polecenie cmdlet usuwa elementy w określonych lokalizacjach i we wszystkich elementach podrzędnych lokalizacji.
Parametr Recurse może nie usuwać wszystkich podfolderów ani wszystkich elementów podrzędnych. Jest to znany problem.
Nuta
To zachowanie zostało naprawione w systemach Windows w wersji 1909 i nowszych.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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. Od programu Windows PowerShell 7.2 Remove-Item
mogą usuwać alternatywne strumienie danych z katalogów, a także plików.
Aby uzyskać więcej informacji, zobacz about_FileSystem_Provider.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-WhatIf
Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Polecenie cmdlet nie jest uruchamiane.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Do tego polecenia cmdlet można przekazać ciąg zawierający ścieżkę, ale nie ścieżkę literału.
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:
del
erase
rd
ri
- Windows:
rm
rmdir
Polecenie cmdlet Remove-Item
jest przeznaczone do pracy z danymi udostępnianymi przez dowolnego dostawcę. 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 wyświetli monit o potwierdzenie. Użycie -Confirm:$false
nie pomija monitu. Jest to zgodnie z projektem.