Compartilhar via


Remove-Item

Exclui os itens especificados.

Sintaxe

Path (Default)

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

LiteralPath

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

Description

O cmdlet Remove-Item exclui um ou mais itens. Como há suporte para 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 nome de arquivo

Esse comando exclui todos os arquivos que têm 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 nome de arquivo.

Remove-Item C:\Test\*.*

Exemplo 2: excluir alguns dos arquivos de documento em uma pasta

Esse comando exclui da pasta atual todos os arquivos que têm uma extensão de nome de arquivo ".doc" e um nome que não inclui 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.

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

Exemplo 3: Excluir arquivos somente leitura ocultos

Esse comando exclui um arquivo oculto e somente leitura. Ele usa o parâmetro Path para especificar o arquivo. Usa o parâmetro Force para excluí-lo. Sem Forçar, você não pode excluir somente leitura ou arquivos de ocultos.

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

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.

No comando Get-ChildItem, path tem um valor '*', 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 do caminho, como -Path *.csv, o cmdlet interpretará o assunto da pesquisa como um arquivo que não tem itens filho e o Recurse falhar.

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

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.

O primeiro comando usa o parâmetro dinâmico Stream do cmdlet Get-Item para obter o fluxo Zone.Identifier do arquivo "Copy-Script.ps1".

O segundo comando usa o parâmetro dinâmico Stream do cmdlet Remove-Item para remover o fluxo Zone.Identifier do arquivo.

O terceiro comando usa o parâmetro dinâmico Stream do cmdlet Get-Item para verificar se o fluxo Zone.Identifier foi excluído.

O quarto comando Get-Item cmdlet sem o parâmetro Stream para verificar se o arquivo não foi excluído.

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

Parâmetros

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

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 tem suporte para 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

-Exclude

Especifica os itens que esse cmdlet omite. 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.

Propriedades do parâmetro

Tipo:

String[]

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

-Filter

Especifica um filtro no formato ou idioma do provedor. O valor desse parâmetro qualifica o parâmetro Path.

A sintaxe do filtro, incluindo o uso de caracteres curinga, depende do provedor. 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 ter 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: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

-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 constantes ou variáveis. A implementação varia de provedor para provedor. Para obter mais informações, consulte about_Providers. Mesmo com o uso do parâmetro Force, o cmdlet não pode substituir 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 itens a serem excluídos. 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.

Propriedades do parâmetro

Tipo:

String[]

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

-LiteralPath

Especifica um caminho dos itens que estão sendo removidos. Ao contrário do parâmetro Path, 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.

Propriedades do parâmetro

Tipo:

String[]

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

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.

Quando ele é usado com o parâmetro Include, o parâmetro recurse pode não excluir todas as subpastas ou todos os itens filho. Esse é um problema conhecido. Como solução alternativa, experimente os resultados de tubulação do comando Get-ChildItem -Recurse para Remove-Item, conforme descrito em "Exemplo 4" neste tópico.

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

O parâmetro Stream é um parâmetro dinâmico que o provedor FileSystem adiciona ao Remove-Item. Esse parâmetro funciona apenas em unidades de arquivos do sistema.

Você pode usar Remove-Item para excluir um fluxo de dados alternativo. 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.

Propriedades do parâmetro

Tipo:

String[]

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

-UseTransaction

Inclui o comando na transação ativa. Esse parâmetro só é válido quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions

Propriedades do parâmetro

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

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

Este cmdlet não retorna nenhuma saída.

Observações

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.