Remove-Item
Exclui os itens especificados.
Syntax
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>]
Description
O Remove-Item
cmdlet exclui um ou mais itens. Como ele tem suporte de muitos provedores, ele pode excluir muitos tipos diferentes de itens, incluindo arquivos, pastas, chaves de registro, variáveis, aliases e funções.
Exemplos
Exemplo 1: excluir arquivos que têm qualquer extensão de nome de arquivo
Este exemplo exclui todos os arquivos que têm nomes que incluem um ponto (.
) da C:\Test
pasta. 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
Este exemplo exclui da pasta atual todos os arquivos que têm uma .doc
extensão de nome de arquivo 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 ocultos e somente leitura
Esse comando exclui um arquivo 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 o Force, você não pode 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 tem um problema conhecido, o comando neste exemplo usa para obter os arquivos desejados Get-ChildItem
e, em Remove-Item
seguida, usa o operador de pipeline para passá-los para Remove-Item
.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
No comando, PathGet-ChildItem
tem um valor de (*
), que representa o conteúdo da pasta atual. Ele usa Include para especificar o tipo de arquivo CSV e usa o Recurse para tornar a recuperação recursiva. Se você tentar especificar o tipo de arquivo do caminho, por -Path *.csv
exemplo, o cmdlet interpretará o assunto da pesquisa como um arquivo que não tem itens filho e o 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 Remove-Item
cmdlet 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 Get-Item
Stream obtém o Zone.Identifier
fluxo do Copy-Script.ps1
arquivo. Remove-Item
usa o parâmetro Stream para remover o Zone.Identifier
fluxo do arquivo. Por fim, o Get-Item
cmdlet mostra que o Zone.Identifier
fluxo foi excluído.
Parâmetros
-Confirm
Solicita sua confirmação antes de executar o cmdlet. Para obter mais informações, consulte os seguintes artigos:
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Observação
Esse parâmetro não tem suporte para nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar esse cmdlet, use Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Exclude
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet exclui na operação. O valor deste 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 C:\Windows
diretório.
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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-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 filtro 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 ter o PowerShell filtrar os objetos depois que eles são recuperados.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Força o cmdlet a remover itens que, de outra forma, não podem ser alterados, como arquivos ocultos ou somente leitura ou aliases ou variáveis somente leitura. O cmdlet não pode remover variáveis nem aliases 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 pode substituir as restrições de segurança.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet inclui na operação. O valor deste 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 C:\Windows
diretório.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como ele é digitado. Nenhum caractere é interpretado como caractere 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.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Especifica um caminho dos itens que estão sendo removidos. Caracteres curinga são permitidos.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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 nas versões do Windows 1909 e mais recentes.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Stream
Observação
Esse parâmetro só está disponível no Windows.
O parâmetro Stream é um parâmetro dinâmico ao qual o provedor FileSystem adiciona Remove-Item
.
Esse parâmetro funciona somente em unidades de sistema de arquivos.
Você pode usar Remove-Item
para excluir um fluxo de dados alternativo, como Zone.Identifier
.
No entanto, não é a maneira recomendada para eliminar verificações de segurança que bloqueiam arquivos baixados da Internet. Se você verificar se um arquivo baixado está seguro, use o Unblock-File
cmdlet.
Este parâmetro foi introduzido no Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode canalizar 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 Remove-Item
cmdlet 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 confirmação. O uso -Confirm:$false
não suprime o prompt. Isso ocorre por design.