Udostępnij za pośrednictwem


Remove-Item

Usuwa określone elementy.

Składnia

Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [-Stream <String[]>]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [-Stream <String[]>]
      [<CommonParameters>]

Opis

Polecenie cmdlet Remove-Item 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, które mają dowolne rozszerzenie nazwy pliku

To polecenie usuwa wszystkie pliki, które mają nazwy zawierające kropkę ('.') z folderu "C:\Test". 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

To polecenie usuwa z bieżącego folderu wszystkie pliki, które mają rozszerzenie nazwy pliku ".doc" i nazwę, która nie zawiera 1. Używa symbolu wieloznakowego ('*'), aby określić zawartość bieżącego folderu. Używa on parametrów Include i Exclude w celu określenia plików do usunięcia.

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

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. Do określenia pliku jest używany parametr ścieżka . Używa parametru Force, aby go usunąć. Bez Wymuszajnie można usuwać tylko do odczytu ani ukrytych plików.

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

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.

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 rekurse, aby rekursywne pobieranie.

Jeśli spróbujesz określić typ pliku, taki jak -Path *.csv, polecenie cmdlet interpretuje temat wyszukiwania jako plik, który nie zawiera elementów podrzędnych, a rekurse zakończy się niepowodzeniem.

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

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 strumienia polecenia cmdlet Remove-Item w celu usunięcia alternatywnego strumienia danych. Parametr strumienia jest wprowadzany w programie Windows PowerShell 3.0.

Pierwsze polecenie używa Stream parametru dynamicznego polecenia cmdlet Get-Item w celu pobrania strumienia Zone.Identifier pliku "Copy-Script.ps1".

Drugie polecenie używa parametru dynamicznego Stream polecenia cmdlet Remove-Item w celu usunięcia strumienia Zone.Identifier pliku.

Trzecie polecenie używa Stream parametru dynamicznego polecenia cmdlet w celu sprawdzenia, czy strumień Zone.Identifier został usunięty.

Czwarte polecenie Get-Item polecenie cmdlet bez parametru Stream, aby sprawdzić, czy plik nie został usunięty.

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'.
At line:1 char:1
+ Get-Item 'C:\Test\Copy-Script.ps1' -Stream Zone.Identifier
+ [!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()]~~
    + CategoryInfo          : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundE
   xception
    + FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand

Get-Item C:\Test\Copy-Script.ps1

Directory: C:\Test

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          8/4/2011  11:15 AM       9436 Copy-Script.ps1

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

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

-Exclude

Określa elementy pomijane przez to polecenie cmdlet. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak *.txt. Dozwolone są symbole wieloznaczne.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Filter

Określa filtr w formacie lub języku dostawcy. Wartość tego parametru kwalifikuje parametr Path.

Składnia filtru, w tym użycie symboli wieloznacznych, zależy od dostawcy. Filtry są wydajniejsze niż inne parametry, ponieważ dostawca stosuje je, gdy polecenie cmdlet pobiera obiekty zamiast filtrować obiekty po ich pobraniu.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Force

Wymusza usunięcie elementów, których nie można zmienić, takich jak ukryte lub tylko do odczytu pliki lub 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 elementy do usunięcia. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak "*.txt". Dozwolone są symbole wieloznaczne.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-LiteralPath

Określa ścieżkę usuwanych elementów. W przeciwieństwie do parametru Path 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.

Typ:String[]
Aliasy:PSPath
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.

Jeśli jest używany z parametrem Include, parametr Recurse może nie usuwać wszystkich podfolderów ani wszystkich elementów podrzędnych. Jest to znany problem. Aby obejść ten problem, spróbuj wykonać potokowanie wyników polecenia Get-ChildItem -Recurse, aby Remove-Item, zgodnie z opisem w sekcji "Przykład 4" w tym temacie.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Stream

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

Możesz użyć Remove-Item do usunięcia alternatywnego strumienia danych. 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.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-UseTransaction

Zawiera polecenie w aktywnej transakcji. Ten parametr jest prawidłowy tylko wtedy, gdy transakcja jest w toku. Aby uzyskać więcej informacji, zobacz about_Transactions

Typ:SwitchParameter
Aliasy:usetx
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-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

String

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

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.