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 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 somente leitura
Este comando exclui um arquivo 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 excluí-lo. Sem Force, não é possível excluir somente leitura ou arquivos 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
, 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 você omitir o parâmetro Recurse, você 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:
Tipo: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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.
Tipo: | PSCredential |
Position: | Named |
Default value: | Current user |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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 about_Certificate_Provider.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 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 serão removidos junto com seu diretório pai.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
-Filter
Especifica um filtro para qualificar o parâmetro Path
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 fornecedor para fornecedor. Para obter mais informações, consulte about_Providers. Mesmo usando o parâmetro Force, o cmdlet não pode substituir restrições de segurança.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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ó é 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
.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
-LiteralPath
Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples dizem 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 |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-Path
Especifica um caminho dos itens que estão sendo removidos. Caracteres curinga são permitidos.
Tipo: | String[] |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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. Este é um problema conhecido.
Observação
Esse comportamento foi corrigido no Windows versões 1909 e mais recentes.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
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
- Janelas:
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 é por design.