Partilhar 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 é suportado por 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 pasta C:\Test. Como o comando especifica um ponto, ele não exclui pastas ou arquivos que não tenham extensão de arquivo.

Remove-Item C:\Test\*.*

Exemplo 2: Excluir arquivos de documentos 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 Include e Exclude para especificar os arquivos a serem excluídos.

Exemplo 3: Excluir arquivos ocultos, apenas de leitura

Este comando exclui um ficheiro que está 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 apagá-lo. Sem Force, não é possível eliminar arquivos de leitura apenas ou ocultos.

Exemplo 4: Excluir arquivos em subpastas recursivamente

Este 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, o 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 no Windows versões 1909 e superiores.

Exemplo 5: Excluir subchaves recursivamente

Este comando elimina a chave de registo "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 omitir o parâmetro Recurse, será solicitado a confirmar 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 Stream parâmetro dinâmico do cmdlet Remove-Item para excluir um fluxo de 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 StreamGet-Item obtém o fluxo de Zone.Identifier do arquivo Copy-Script.ps1. Remove-Item usa o parâmetro Stream para remover o fluxo de Zone.Identifier do arquivo. Finalmente, o cmdlet Get-Item mostra que o fluxo de Zone.Identifier foi excluído.

Parâmetros

-Confirm

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Credential

Observação

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

Propriedades dos parâmetros

Tipo:PSCredential
Default value:Current user
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-DeleteKey

Este é um parâmetro dinâmico disponibilizado pelo provedor Certificate. O Certificate provider 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 sobre o fornecedor de certificados.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 coringa são permitidos. O parâmetro Exclude só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*, onde o caractere curinga especifica o conteúdo do diretório C:\Windows.

Ao usar Recurse com Exclude, Excluir filtra apenas os resultados do diretório atual. Se houver arquivos que correspondam ao padrão Excluir em subpastas, esses arquivos são removidos junto com a sua diretoria principal.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Filter

Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que oferece suporte ao uso de filtros. A sintaxe da linguagem de filtro do FileSystem pode ser encontrada em about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, porque 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.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Force

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 coringa são permitidos. O parâmetro Include só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*, onde o caractere curinga especifica o conteúdo do diretório C:\Windows.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-LiteralPath

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

Para obter mais informações, consulte about_Quoting_Rules.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PSPath, LP

Conjuntos de parâmetros

LiteralPath
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Path

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

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

Path
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-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 eliminar todas as subpastas ou todos os elementos filhos. Este é um problema conhecido.

Observação

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Stream

Este é um parâmetro dinâmico disponibilizado pelo provedor FileSystem. Este parâmetro só está disponível no Windows. Este 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 e arquivos.

Para obter mais informações, consulte about_FileSystem_Provider.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-WhatIf

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 canalizar uma cadeia de caracteres que contém um caminho, mas não um caminho literal, para esse cmdlet.

Saídas

None

Este cmdlet não retorna nenhuma saída.

Notas

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 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 a confirmação. O uso do -Confirm:$false não suprime o prompt. Isso é intencional.