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 Remove-Item cmdlet elimina um ou mais itens. Como é suportado por muitos fornecedores, pode eliminar vários tipos diferentes de itens, incluindo ficheiros, pastas, chaves de registo, variáveis, pseudónimos e funções.

Exemplos

Exemplo 1: Eliminar ficheiros que tenham qualquer extensão de ficheiro

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

Remove-Item C:\Test\*.*

Exemplo 2: Eliminar ficheiros de documentos numa pasta

Este exemplo apaga da pasta atual todos os ficheiros que tenham uma .doc extensão de ficheiro e um nome que não inclua *1*.

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

Utiliza o carácter coringa (*) para especificar o conteúdo da pasta atual. Utiliza os parâmetros Incluir e Excluir para especificar os ficheiros a eliminar.

Exemplo 3: Apagar ficheiros ocultos, só de leitura

Este comando apaga um ficheiro que é tanto oculto como só leitura.

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

Utiliza o parâmetro Path para especificar o ficheiro. Usa o parâmetro Força para a eliminar. Sem o Force, não podes apagar ficheiros apenas de leitura ou ocultos .

Exemplo 4: Eliminar ficheiros em subpastas recursivamente

Este comando apaga todos os ficheiros CSV na pasta atual e todas as subpastas recursivamente.

Como o parâmetro Recurse em Remove-Item tem um problema conhecido, o comando neste exemplo usa Get-ChildItem para obter os ficheiros desejados, e depois usa o operador pipeline para os passar para Remove-Item.

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

No Get-ChildItem comando, Path tem um valor de (*), que representa o conteúdo da pasta atual. Usa Include para especificar o tipo de ficheiro CSV e usa Recurse para tornar a recuperação recursiva. Se tentar especificar o tipo de ficheiro no caminho, como -Path *.csv, o cmdlet interpreta o sujeito da pesquisa como sendo um ficheiro sem itens filhos, e o Recurse falha.

Observação

A partir da versão 1909 do Windows, especificar o tipo de ficheiro no parâmetro Path ao usar o parâmetro Recurse descobre recursivamente itens filhos com a extensão de ficheiro dada.

Na versão 1909 do Windows e posteriores, as seguintes instruções irão descobrir e remover os mesmos ficheiros:

# Works in all versions of Windows:
Get-ChildItem -Path * -Include *.csv -Recurse | Remove-Item
# Only correctly finds and removes nested CSV files in Windows 1909 and later:
Get-ChildItem -Path *.csv -Recurse | Remove-Item

Exemplo 5: Eliminar subchaves recursivamente

Este comando elimina a chave de registo "OldApp" e todas as suas subchaves e valores. É usado Remove-Item para remover a chave. O caminho é especificado, mas o nome opcional do parâmetro (Caminho) é omitido.

O parâmetro Recurse elimina recursivamente todo o conteúdo da chave "OldApp". Se a chave contiver subchaves e omitir o parâmetro Recurse , é solicitado que confirme que quer apagar o conteúdo da chave.

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

Exemplo 6: Apagar ficheiros com caracteres especiais

O exemplo seguinte mostra como eliminar ficheiros que contenham 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 Remove-Item cmdlet para eliminar 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 Get-ItemStream recebe o Zone.Identifier fluxo do Copy-Script.ps1 ficheiro. Remove-Item usa o parâmetro Stream para remover o Zone.Identifier fluxo do ficheiro. Finalmente, o Get-Item cmdlet mostra que o Zone.Identifier stream foi eliminado.

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 fornecedor do Certificado . O fornecedor de certificados e este parâmetro estão disponíveis apenas em plataformas Windows.

Quando fornecido, o cmdlet apaga a chave privada quando o certificado é eliminado.

Para mais informações, consulte about_Certificate_Provider.

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, Exclude apenas filtra os resultados do diretório atual. Se existirem ficheiros que correspondam ao padrão Exclude nas subpastas, esses ficheiros são removidos juntamente com o seu diretório 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

Obriga o cmdlet a remover itens que de outra forma não podem ser alterados, como ficheiros ocultos ou apenas de leitura, ou alias ou variáveis apenas de leitura. O cmdlet não pode remover alias 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 percurso dos itens a serem 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 este cmdlet elimina os itens nas localizações especificadas e em todos os itens filhos das localizações.

O parâmetro Recurse pode não eliminar todas as subpastas ou todos os itens filhos. Este é um problema conhecido.

Observação

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

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 .

Pode usar Remove-Item para eliminar um fluxo de dados alternativo, como Zone.Identifier. No entanto, não é a forma recomendada de eliminar verificações de segurança que bloqueiam ficheiros descarregados da Internet. Se verificares que um ficheiro descarregado está seguro, usa o Unblock-File cmdlet.

Esse parâmetro foi introduzido no Windows PowerShell 3.0. A partir do Windows PowerShell 7.2, Remove-Item é possível remover fluxos de dados alternativos tanto de diretórios como de ficheiros.

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

Podes canalizar uma corda que contenha um caminho, mas não um caminho literal, para este 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 tentas eliminar uma pasta que contém itens sem usar o parâmetro Recurse , o cmdlet pede confirmação. Usar -Confirm:$false não suprime o prompt. Isso é intencional.