Compartilhar via


Remove-Item

Exclui os itens especificados.

Sintaxe

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

Description

O cmdlet Remove-Item exclui um ou mais itens. Como é compatível com 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 têm qualquer extensão de arquivo

Este exemplo exclui todos os arquivos com nomes que incluem um ponto (.) da pasta C:\Test. Como o comando especifica um ponto, o comando não exclui pastas ou arquivos que não têm nenhuma 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 extensão de arquivo .doc 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 Incluir e Excluir para especificar os arquivos a serem excluídos.

Exemplo 3: Excluir arquivos somente leitura ocultos

Este comando exclui um arquivo que é, ao mesmo tempo, oculto e somente leitura.

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

Ele usa o parâmetro Path para especificar o arquivo. Usa o parâmetro Force para excluí-lo. Sem Force, não é possível 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 no 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

No comando Get-ChildItem, path tem um valor de (*), que representa o conteúdo da pasta atual. Ele usa Incluir 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 secundários e Recurse falhará.

Observação

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

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 se 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 Remove-Item para excluir um fluxo de dados alternativo. O parâmetro de fluxo é 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 StreamGet-Item obtém o Zone.Identifier fluxo do arquivo Copy-Script.ps1. Remove-Item usa o parâmetro Stream para remover o fluxo Zone.Identifier do arquivo. Por fim, o cmdlet Get-Item mostra que o fluxo de Zone.Identifier foi excluído.

Parâmetros

-Confirm

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Credential

Observação

Esse parâmetro não é compatível com nenhum provedor instalado com o PowerShell. Para executar este cmdlet em nome de outro usuário ou elevar suas credenciais, use Invoke-Command.

Propriedades do parâmetro

Tipo:PSCredential
Valor padrão:Current user
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-DeleteKey

Esse é um parâmetro dinâmico disponibilizado pelo provedor Certificate. 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.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 Excluir só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do diretório C:\Windows.

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

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-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 filtragem FileSystem no 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 o PowerShell filtrar os objetos depois que eles são recuperados.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Force

Força o cmdlet a remover itens que não podem ser alterados de outra forma, como arquivos ocultos ou de leitura exclusiva, ou aliases ou variáveis de leitura exclusiva. 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 consegue superar as restrições de segurança.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do diretório C:\Windows.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-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. Aspas simples indicam ao PowerShell que não deve interpretar nenhum caractere como uma sequência de escape.

Para mais informações, consulte sobre_Regras_de_Citação.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:PSPath, LP

Conjuntos de parâmetros

LiteralPath
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Path

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

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

Path
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Recurse

Indica que esse cmdlet exclui os itens nos locais especificados e em todos os itens secundários dos locais.

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

Observação

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Stream

Esse é um parâmetro dinâmico disponibilizado pelo provedor de 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 verificações de segurança que bloqueiam arquivos baixados da Internet. Se você verificar se um arquivo baixado é seguro, use o cmdlet Unblock-File.

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

Para obter mais informações, consulte about_FileSystem_Provider.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WhatIf

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

String

Você pode redirecionar uma cadeia de caracteres que contém um caminho, mas não um caminho literal, para este 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 cmdlet Remove-Item foi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis na 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 é por design.