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:
deleraserdri
- Windows:
rmrmdir
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.