Remove-Item

Exclui os itens especificados.

Sintaxe

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

Description

O Remove-Item cmdlet exclui um ou mais itens. Como ele tem suporte de muitos provedores, ele pode excluir muitos tipos diferentes de itens, incluindo arquivos, pastas, chaves do Registro, variáveis, aliases e funções.

Exemplos

Exemplo 1: Excluir arquivos que tenham qualquer extensão de arquivo

Este exemplo exclui todos os arquivos com nomes que incluem um ponto (.) da C:\Test pasta. Como o comando especifica um ponto, o comando não exclui pastas ou arquivos que não têm extensão de arquivo.

Remove-Item C:\Test\*.*

Exemplo 2: Excluir arquivos de documento em uma pasta

Este exemplo exclui da pasta atual todos os arquivos que têm uma .doc extensão de arquivo e um nome que não inclui *1*.

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

Ele usa o caractere curinga (*) para especificar o conteúdo da pasta atual. Ele usa os parâmetros Include e Exclude para especificar os arquivos a serem excluídos.

Exemplo 3: Excluir arquivos ocultos e somente leitura

Esse comando exclui um arquivo oculto e somente leitura.

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

Ele usa o parâmetro Path para especificar o arquivo. Ele usa o parâmetro Force para excluí-lo. Sem o Force, você não pode excluir arquivos somente leitura ou ocultos .

Exemplo 4: Excluir arquivos em subpastas recursivamente

Esse comando exclui todos os arquivos CSV na pasta atual e todas as subpastas recursivamente.

Como o parâmetro Recurse in Remove-Item tem um problema conhecido, o comando neste exemplo usa Get-ChildItem para obter os arquivos desejados e, em seguida, usa o operador de pipeline para passá-los para Remove-Item.

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

Get-ChildItem No comando, Caminho tem um valor de (*), que representa o conteúdo da pasta atual. Ele usa Include para especificar o tipo de arquivo CSV e usa Recurse para tornar a recuperação recursiva. Se você tentar especificar o tipo de arquivo no caminho, como -Path *.csv, o cmdlet interpretará o assunto da pesquisa como um arquivo que não tem itens filho e Recurse falhará.

Observação

Esse comportamento foi corrigido nas versões 1909 e superiores do Windows.

Exemplo 5: Excluir subchaves recursivamente

Esse comando exclui a chave do Registro "OldApp" e todas as suas subchaves e valores. Ele usa Remove-Item para remover a chave. O caminho é especificado, mas o nome do parâmetro opcional (Path) é omitido.

O parâmetro Recurse exclui todo o conteúdo da chave "OldApp" recursivamente. Se a chave contiver subchaves e você omitir o parâmetro Recurse , será solicitado que você confirme que deseja excluir o conteúdo da chave.

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

Exemplo 6: Excluindo arquivos com caracteres especiais

O exemplo a seguir mostra como excluir arquivos que contêm caracteres especiais, como colchetes ou parênteses.

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

Exemplo 7: Remover um fluxo de dados alternativo

Este exemplo mostra como usar o parâmetro dinâmico Stream do cmdlet para excluir um fluxo de Remove-Item dados alternativo. O parâmetro stream é introduzido no 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'.

O parâmetro Get-Item Stream obtém o Zone.Identifier fluxo do Copy-Script.ps1 arquivo. Remove-Item usa o parâmetro Stream para remover o Zone.Identifier fluxo do arquivo. Por fim, o Get-Item cmdlet mostra que o Zone.Identifier fluxo foi excluído.

Parâmetros

-Confirm

Solicita sua confirmação antes de executar o cmdlet. Para obter mais informações, consulte os seguintes artigos:

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Credential

Observação

Esse parâmetro não tem suporte de nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar esse cmdlet, use Invoke-Command.

Tipo:PSCredential
Cargo:Named
Valor padrão:Current user
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-DeleteKey

Esse é um parâmetro dinâmico disponibilizado pelo provedor de certificados . O provedor de certificado e esse parâmetro só estão disponíveis em plataformas Windows.

Quando fornecido, o cmdlet exclui a chave privada quando o certificado é excluído.

Para obter mais informações, consulte about_Certificate_Provider.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Exclude

Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet exclui na operação. O valor desse parâmetro qualifica o parâmetro Path . Insira um elemento ou padrão de caminho, como *.txt. Caracteres curinga são permitidos. O parâmetro Exclude é efetivo somente quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do C:\Windows diretório.

Ao usar Recurse com Exclude, Exclude filtra apenas os resultados do diretório atual. Se houver arquivos que correspondam ao padrão Excluir em subpastas, esses arquivos serão removidos junto com seu diretório pai.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-Filter

Especifica um filtro para qualificar o parâmetro Path . O provedor FileSystem é o único provedor do PowerShell instalado que dá suporte ao uso de filtros. Você pode encontrar a sintaxe da linguagem de filtro FileSystem em about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, pois o provedor os aplica quando o cmdlet obtém os objetos, em vez de fazer com que o PowerShell filtre os objetos depois que eles são recuperados.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-Force

Força o cmdlet a remover itens que não podem ser alterados de outra forma, como arquivos ocultos ou somente leitura ou aliases ou variáveis somente leitura. O cmdlet não pode remover aliases ou variáveis constantes. A implementação varia de provedor para provedor. Para obter mais informações, consulte about_Providers. Mesmo usando o parâmetro Force , o cmdlet não pode substituir as restrições de segurança.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Include

Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet inclui na operação. O valor desse parâmetro qualifica o parâmetro Path . Insira um elemento ou padrão de caminho, como "*.txt". Caracteres curinga são permitidos. O parâmetro Include é efetivo somente quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do C:\Windows diretório.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-LiteralPath

Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples informam ao PowerShell para não interpretar nenhum caractere como sequências de escape.

Para obter mais informações, consulte about_Quoting_Rules.

Tipo:String[]
Aliases:PSPath, LP
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Path

Especifica um caminho dos itens que estão sendo removidos. Caracteres curinga são permitidos.

Tipo:String[]
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:True

-Recurse

Indica que esse cmdlet exclui os itens nos locais especificados e em todos os itens filho dos locais.

O parâmetro Recurse pode não excluir todas as subpastas ou todos os itens filho. Esse é um problema conhecido.

Observação

Esse comportamento foi corrigido nas versões 1909 e mais recentes do Windows.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Stream

Esse é um parâmetro dinâmico disponibilizado pelo provedor FileSystem. Esse parâmetro só está disponível no Windows. Esse parâmetro não pode ser usado em combinação com o parâmetro Recurse .

Você pode usar Remove-Item para excluir um fluxo de dados alternativo, como Zone.Identifier. No entanto, não é a maneira recomendada de eliminar as verificações de segurança que bloqueiam arquivos baixados da Internet. Se você verificar se um arquivo baixado é seguro, use o Unblock-File cmdlet.

Este parâmetro foi introduzido no Windows PowerShell 3.0. A partir de Windows PowerShell 7.2, pode remover fluxos de dados alternativos de diretórios, Remove-Item bem como arquivos.

Para obter mais informações, consulte about_FileSystem_Provider.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

String

Você pode canalizar uma cadeia de caracteres que contém um caminho, mas não um caminho literal, para esse cmdlet.

Saídas

None

Esse cmdlet não retorna nenhuma saída.

Observações

O PowerShell inclui os seguintes aliases para Remove-Item:

  • Todas as plataformas:
    • del
    • erase
    • rd
    • ri
  • Windows:
    • rm
    • rmdir

O Remove-Item cmdlet foi projetado para funcionar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digite Get-PsProvider. Para obter mais informações, consulte about_Providers.

Quando você tenta excluir uma pasta que contém itens sem usar o parâmetro Recurse , o cmdlet solicita confirmação. Usar -Confirm:$false não suprime o prompt. Isso ocorre por design.