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>]

Opis

Polecenie Remove-Item cmdlet usuwa co najmniej jeden element. Ponieważ jest on 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 z rozszerzeniem nazwy pliku

Ten przykład usuwa wszystkie pliki, które mają nazwy zawierające kropkę (.) z C:\Test folderu. Ponieważ polecenie określa kropkę, polecenie nie usuwa folderów ani plików, które nie mają rozszerzenia nazwy pliku.

Remove-Item C:\Test\*.*

Przykład 2. Usuwanie niektórych plików dokumentów w folderze

Ten przykład usuwa z bieżącego folderu wszystkie pliki, które mają .doc rozszerzenie nazwy pliku i nazwę, która nie zawiera *1*.

Remove-Item * -Include *.doc -Exclude *1*

Używa symbolu wieloznakowego (*), aby określić zawartość bieżącego folderu. Używa parametrów Dołączanie i Wykluczanie , aby określić pliki do usunięcia.

Przykład 3. Usuwanie ukrytych, tylko do odczytu plików

To polecenie usuwa plik, który jest zarówno ukryty , jak i tylko do odczytu.

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

Używa parametru Path do określenia pliku. Używa parametru Force , aby go usunąć. Bez wymuszenia nie można usunąć plików tylko do odczytu ani ukrytych .

Przykład 4. Usuwanie plików w podfolderach cyklicznie

To polecenie usuwa wszystkie pliki CSV w bieżącym folderze i wszystkie podfoldery cyklicznie.

Ponieważ parametr Recurse w pliku Remove-Item ma znany problem, polecenie w tym przykładzie używa polecenia do pobrania żądanych plików, a następnie używa Get-ChildItem operatora potoku do przekazania ich do Remove-Item.

Get-ChildItem * -Include *.csv -Recurse | Remove-Item

W poleceniu Get-ChildItemŚcieżka ma wartość (*), która reprezentuje zawartość bieżącego folderu. Używa funkcji Include do określenia typu pliku CSV i używa metody Recurse w celu ponownego pobierania. Jeśli spróbujesz określić typ pliku w ścieżce, na -Path *.csvprzykład , polecenie cmdlet interpretuje temat wyszukiwania jako plik, który nie ma elementów podrzędnych, a recurse kończy się niepowodzeniem.

Uwaga

To zachowanie zostało naprawione w systemie Windows w wersji 1909 i nowszej.

Przykład 5. Ponowne usuwanie podkluczy

To polecenie usuwa klucz rejestru "OldApp" i wszystkie jego podklucze i wartości. Używa Remove-Item go do usunięcia klucza. Ścieżka jest określona, ale pominięto opcjonalną nazwę parametru (Path).

Parametr Recurse usuwa całą zawartość klucza "OldApp" cyklicznie. Jeśli klucz zawiera podklucze i pominięto parametr Recurse , zostanie wyświetlony monit o potwierdzenie, że chcesz usunąć zawartość klucza.

Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse

Przykład 6. Usuwanie plików ze znakami specjalnymi

W poniższym przykładzie pokazano, jak usuwać 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 za pomocą parametru dynamicznego Remove-Itemusługi Stream polecenia cmdlet usunąć alternatywny strumień danych. Parametr strumienia jest wprowadzany w 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-Itemstream pobiera Zone.Identifier strumień Copy-Script.ps1 pliku. Remove-Item używa parametru stream do usunięcia Zone.Identifier strumienia pliku. Na koniec polecenie cmdlet pokazuje, Get-Item że Zone.Identifier strumień został usunięty.

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet. Aby uzyskać więcej informacji, zobacz następujące artykuły:

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Uwaga

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 polecenia Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Accept pipeline input:True
Accept wildcard characters: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ść C:\Windows katalogu.

W przypadku korzystania z funkcji Recurse z wykluczeniem wyklucz tylko filtruje wyniki bieżącego katalogu. Jeśli istnieją pliki zgodne ze wzorcem wykluczania w podfolderach, te pliki zostaną usunięte wraz z katalogiem nadrzędnym.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Określa filtr w celu zakwalifikowania parametru Ścieżka . Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell, który obsługuje 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.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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ń.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters: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ść C:\Windows katalogu.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Określa ścieżkę do co najmniej jednej lokalizacji. Wartość LiterałuPath 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 je ująć w pojedynczy cudzysłów. Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Path

Określa ścieżkę usuwanych elementów. Dozwolone są symbole wieloznaczne.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

-Recurse

Wskazuje, że to polecenie cmdlet usuwa elementy w określonych lokalizacjach i we wszystkich podrzędnych elementach lokalizacji.

Parametr Recurse może nie usuwać wszystkich podfolderów ani wszystkich elementów podrzędnych. Jest to znany problem.

Uwaga

To zachowanie zostało naprawione w systemie Windows w wersji 1909 i nowszych.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Stream

Uwaga

Ten parametr jest dostępny tylko w systemie Windows.

Parametr stream jest parametrem dynamicznym, który dostawca systemu plików dodaje do Remove-Itemelementu . Ten parametr działa tylko na dyskach systemu plików.

Możesz użyć Remove-Item polecenia , aby usunąć alternatywny strumień danych, taki jak Zone.Identifier. Nie jest to jednak zalecany sposób wyeliminowania kontroli zabezpieczeń, które blokują pliki pobierane z Internetu. Jeśli sprawdzisz, czy pobrany plik jest bezpieczny, użyj Unblock-File polecenia cmdlet .

Ten parametr został wprowadzony w Windows PowerShell 3.0. Od Windows PowerShell 7.2 Remove-Item można usunąć alternatywne strumienie danych z katalogów, a także pliki.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

String

Możesz potokować ciąg zawierający ścieżkę, ale nie ścieżkę literału, do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnych danych wyjściowych.

Uwagi

Polecenie Remove-Item cmdlet 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 celowe.