Breve visão geral do cmdlet Remove-Item
Gerenciar arquivos e diretórios é uma tarefa comum em computação, especialmente no ambiente do Windows PowerShell. O Remove-Item no PowerShell é um cmdlet chave para deletar arquivos e diretórios, assim como outros tipos de itens no PowerShell. Remove-Item pode ser usado para sistemas de arquivos locais assim como outros provedores do PowerShell como o Registro, Armazenamento de Certificados e variáveis de Ambiente. Remove-Item também pode aceitar entrada de outros cmdlets através do pipeline, possibilitando operações mais dinâmicas e automação de tarefas de gerenciamento de arquivos. É importante notar que, por padrão, itens deletados com o Remove-Item são permanentemente removidos do sistema e não enviados para a Lixeira. É importante ter certeza sobre as ações ao usar este cmdlet.
Importância e casos de uso comuns
O cmdlet Remove-Item no PowerShell é importante para manter os sistemas organizados e garantir que funcionem sem problemas. É crucial para uma gestão eficaz de arquivos e diretórios, permitindo aos usuários limpar arquivos desnecessários e liberar espaço em disco. Em scripts e automação, ajuda a otimizar fluxos de trabalho ao possibilitar a remoção de arquivos desatualizados ou temporários sem intervenção manual. O cmdlet Remove-Item do PowerShell é útil para tarefas regulares de manutenção, como limpar arquivos de log ou pastas temporárias que se acumulam com o tempo.
Casos de Uso Comuns
Abaixo estão alguns casos de uso comuns para utilizar o comando Remove-Item:
- Excluindo Arquivos Temporários: Removendo regularmente arquivos temporários para manter o desempenho do sistema.
- Limpando Backups Antigos: Exclusão automática de arquivos de backup antigos para economizar espaço.
- Exclusão em Lote: Removendo vários arquivos com uma extensão específica.
- Removendo Diretórios Vazios: Limpando pastas vazias em uma estrutura de diretórios.
- Limpeza de Chave de Registro: Excluindo chaves de registro específicas que não são mais necessárias.
- Scripts de Implantação: Em scripts de implantação, remova versões antigas de aplicativos antes de instalar novas.
Provedores e tipos de itens suportados
O comando Remove-Item do PowerShell suporta uma variedade de provedores e tipos de itens. Primordialmente, é utilizado em sistemas de arquivos para excluir arquivos e pastas, mas sua funcionalidade vai além do sistema de arquivos. Ele também pode excluir chaves e entradas do registro. Isso é útil para limpar ou modificar configurações do sistema. Embora seja menos comum seu uso para este fim, o Remove-Item pode trabalhar com outros provedores do PowerShell, permitindo a exclusão de itens como variáveis e aliases.
Conteúdo relacionado selecionado:
Sintaxe Básica
A sintaxe básica para Remove-Item é a seguinte.
Remove-Item [-Path] <string[]> [-Force] [-Recurse] [-LiteralPath <string[]>] [-Confirm] [-WhatIf] [-ErrorAction <ActionPreference>] [-WarningAction <ActionPreference>] [-InformationAction <ActionPreference>] [-InformationVariable <string>] [<CommonParameters>]
Abaixo está um exemplo de cmdlet com parâmetros comuns.
Remove-Item -Path C:\Backups\Design.txt -Force -Recurse -WhatIf
Parâmetros do cmdlet Remove-Item
Os seguintes são os parâmetros mais comuns usados com o cmdlet Remove-Item:
Parâmetros | Explicação |
|---|---|
|
-Path |
Especifica o caminho para os itens que você deseja remover. Este parâmetro aceita caracteres curinga, permitindo correspondência de padrões. O elemento do caminho pode significar absoluto ou relativo. |
|
-LiteralPath |
Semelhante a -Path, mas trata o caminho exatamente como especificado, sem interpretar caracteres curinga. |
|
-Force |
Este é um cmdlet de remoção de item que é usado para forçar um comando a remover itens que de outra forma não podem ser excluídos. Por exemplo, isso pode incluir arquivos ocultos ou somente leitura, ou itens com subitens que não estão vazios. Use este parâmetro com cautela, pois pode resultar em perda de dados. |
|
-Incluir |
Especifica apenas os itens que correspondem ao padrão especificado ou tipo de item a ser removido. Isso funciona em conjunto com o parâmetro -Path para filtrar itens dentro do caminho. |
|
-Exclude |
Especifica itens que não devem ser removidos. Isso é usado para excluir certos itens da operação com base no padrão fornecido. |
|
-Recurse |
Se o item a ser removido for um diretório, este parâmetro garantirá que todos os seus itens filhos também sejam removidos. Sem este parâmetro, o comando não excluirá diretórios que não estejam vazios. |
|
-WhatIf |
Este é um parâmetro de segurança que mostra o que aconteceria se o cmdlet fosse executado, sem realizar a exclusão. É útil para verificar o que será deletado antes de se comprometer com a ação. |
|
-Confirmar |
Solicita sua confirmação antes de executar o cmdlet. Isso pode ser uma verificação de segurança útil para evitar a exclusão acidental de itens importantes. |
|
-Credential |
Permite que você especifique uma conta de usuário com permissão para realizar a exclusão, se necessário. |
|
-Stream |
Este parâmetro é usado para deletar fluxos de dados alternativos (ADS) de arquivos e pastas. |
Como encontrar e copiar caminhos completos usando o File Explorer
Você pode encontrar os caminhos completos de arquivos e pastas usando o Explorador de Arquivos no Windows. Isso pode ser útil quando você precisa referenciar arquivos e pastas em aplicativos, scripts ou em cmdlets do PowerShell. Siga os passos abaixo para encontrar o caminho de arquivos e pastas.
- Abra o Explorador de Arquivos, navegue até a pasta que contém o arquivo ou pasta para o qual você deseja o caminho completo.
- Uma vez que você estiver na pasta desejada, clique na barra de endereço no topo do Explorador de Arquivos. Isso destacará o caminho completo.
- Clique com o botão direito do mouse no caminho destacado e selecione “Copiar” no menu de contexto para copiar o caminho completo para a sua área de transferência.
- Se você precisa do caminho completo de um arquivo específico, digite o nome do arquivo com a extensão no final do caminho na barra de endereços para completá-lo, por exemplo, “C:\Backup\Design.txt”.
Exclua arquivos e pastas básicos usando o cmdlet Remove-Item
Como deletar um único arquivo
Para excluir um único arquivo usando PowerShell pelo Remove-Item, siga os passos abaixo.
- Abra o PowerShell,
- Digite o cmdlet “Remove-Item” seguido pelo parâmetro “-Path” e o caminho completo do arquivo que você deseja excluir.
O cmdlet básico será o seguinte.
Remove-Item -Path "C:\Backup\Report.txt"
Como deletar uma pasta específica
Para excluir uma pasta específica, siga o cmdlet abaixo.
Para deletar uma pasta chamada “OldProjects” localizada em “C:\Backups”, o comando seria.
Remove-Item -Path "C:\Backups\OldProjects"
Excluir vários arquivos e pastas
Como deletar uma pasta e todo o seu conteúdo
Para excluir uma pasta e todo o seu conteúdo, você precisará usar o parâmetro “-Recurse” para garantir que a pasta, juntamente com todos os seus arquivos e subpastas, seja excluída. Sem este parâmetro, o cmdlet não excluirá a pasta se ela contiver arquivos ou outras pastas. Você pode usar o exemplo de cmdlet abaixo.
Remove-Item -Path "C:\Backups\OldDocuments" -Recurse
Como deletar múltiplos arquivos em um diretório
Se você deseja deletar todos os arquivos de um tipo específico dentro de um diretório, pode usar um curinga (*) com a extensão do arquivo. Por exemplo, para deletar todos os arquivos “.txt” em uma pasta específica, você pode usar o cmdlet abaixo.
Remove-Item -Path "C:\Backups\OldDocuments\*.txt"
Como excluir arquivos de múltiplos tipos
Para excluir arquivos de diferentes tipos dentro de um diretório, você pode executar vários comandos “Remove-Item” ou usar a capacidade do PowerShell de aceitar um array de strings para o parâmetro “-Path”. No entanto, combinar vários padrões de curinga diretamente em um único comando não é suportado no parâmetro “-Path”. Você pode lidar com isso usando “Get-ChildItem” e encaminhando-o para Remove-Item. Por exemplo, para excluir arquivos “.txt” e “.log” em um diretório, use o cmdlet de exemplo abaixo.
Get-ChildItem -Path "C:\Backups\OldDocuments\*.*" -Include *.txt, *.log | Remove-Item
Como deletar múltiplos arquivos específicos
Para excluir vários arquivos específicos, você pode listar vários caminhos separados por vírgulas usando o comando do PowerShell delete file.
Remove-Item -Path "C:\Backups\OldDocuments\Design.txt", "C:\Backups\OldBackups\Backup_20_09_2024.bak"
Como usar curingas para excluir vários arquivos
Para usar curingas para excluir vários arquivos, você pode usar o símbolo asterisco (*) em seu comando. O asterisco serve como um caractere curinga que pode representar qualquer número de caracteres em um nome de arquivo, permitindo que você direcione vários arquivos de uma vez com base em padrões de nomenclatura. Abaixo está um exemplo.
Você pode deletar arquivos usando PowerShell que começam com um certo nome ou contêm um padrão específico. Por exemplo, para deletar arquivos que começam com “Report” independentemente da extensão do arquivo.
Remove-Item -Path "C:\Backups\OldDocuments\Report*"
Inclua tipos de arquivo específicos e exclua outros
Os parâmetros -Include e -Exclude podem ser muito úteis ao usar o cmdlet Remove-Item no PowerShell para filtrar os arquivos e pastas que você deseja excluir.
-Include Parameter
Este parâmetro permite que você especifique padrões para itens a serem incluídos na operação. É usado em conjunto com o parâmetro -Path.
Para excluir todos os arquivos .txt em uma pasta, excluindo todos os outros arquivos, use o cmdlet abaixo.
Remove-Item -Path "C:\Backup\*" -Include "*.txt"
-Exclude Parameter
Este parâmetro permite que você especifique padrões para itens a serem excluídos da operação.
Para excluir todos os arquivos em uma pasta, mas excluir arquivos .txt, use o cmdlet abaixo.
Remove-Item -Path "C:\Backup\*" -Exclude "*.txt"
Conteúdo relacionado selecionado:
Exclua arquivos somente leitura e ocultos via Remote-Item
Para deletar arquivos somente leitura e ocultos, você precisará usar o parâmetro -Force, que permite ao cmdlet ignorar restrições que normalmente impediriam a exclusão de um item, como atributos somente leitura ou ocultos. Você pode usar o exemplo de cmdlet abaixo.
Como deletar um único arquivo
Para excluir um único arquivo, utilize a seguinte sintaxe para o cmdlet Remove-item
Remove-Item -Path "C:\Backups\Design.txt" -Force
Como deletar múltiplos arquivos somente leitura ou ocultos em um diretório usando curinga
Utilize a seguinte sintaxe para deletar múltiplos arquivos somente leitura ou ocultos:
Remove-Item -Path "C:\Backups\*.txt" -Force
Você também pode usar o cmdlet Get-ChildItem para primeiro obter todos os arquivos somente leitura e arquivos ocultos em um diretório específico e, em seguida, usar o Remove-Item com o parâmetro -Force para excluí-los. Abaixo estão alguns exemplos.
Como deletar todos os arquivos somente leitura
Use a seguinte sintaxe para deletar todos os arquivos somente leitura.
Get-ChildItem -Path "C:\Backups" -File -Attributes ReadOnly | Remove-Item -Force
Como deletar todos os arquivos ocultos em um diretório
Utilize a seguinte sintaxe para deletar todos os arquivos ocultos:
Get-ChildItem -Path "C:\Backups" -File -Attributes Hidden | Remove-Item -Force
Como deletar arquivos somente leitura e ocultos
Get-ChildItem -Path "C:\Backups" -File -Attributes ReadOnly,Hidden | Remove-Item -Force
Usando -Recurse para deletar arquivos e subpastas
Para deletar arquivos e subpastas dentro de um diretório especificado, você pode usar o parâmetro -Recurse. Esse parâmetro remove o item e todos os seus filhos recursivamente. É particularmente útil quando você quer limpar um diretório e todo o seu conteúdo, incluindo todos os arquivos aninhados e subdiretórios. Abaixo estão alguns exemplos.
Excluir todos os arquivos e subpastas em um diretório
Remove-Item -Path "C:\Backups\*" -Recurse
Se alguns dos itens estiverem somente leitura ou ocultos, você pode adicionar o parâmetro -Force.
Remove-Item -Path "C:\Backups\*" -Recurse -Force
Excluir arquivos com caracteres especiais
Excluir arquivos com caracteres especiais em seus nomes pode ser complicado às vezes, pois caracteres especiais podem ser interpretados de maneira diferente pelo PowerShell ou exigir tratamento especial. Abaixo estão alguns exemplos.
Citando o caminho
Se o nome do arquivo contiver espaços ou caracteres especiais como (&, $, #, (), []), coloque o caminho entre aspas simples. Esta é a maneira mais simples de garantir que o PowerShell trate toda a string como o caminho. Usar aspas simples garantirá que o PowerShell não expanda o $ como uma variável.
Remove-Item -Path 'C:\Backups\$Design(1).txt'
Coringas para Correspondência de Caracteres Especiais
Se você está tendo dificuldades para especificar um arquivo diretamente, ou se ele tem um nome complexo com muitos caracteres especiais, você pode usar o coringa (*) para corresponder ao arquivo sem digitar o nome completo. Por exemplo, se você tem um arquivo chamado “@#Name(1).txt”, seu cmdlet será como abaixo.
Remove-Item -Path "C:\Backups\*Name*.txt"
Remova fluxos alternativos de dados
Os fluxos de dados alternativos (ADS) permitem que os arquivos contenham mais de um fluxo de dados. Essa funcionalidade é específica para sistemas de arquivos NTFS e pode ser usada para armazenar informações adicionais em um arquivo sem afetar seu conteúdo principal, o que poderia ser mal utilizado para ocultar dados maliciosos. Para remover um fluxo de dados alternativo de um arquivo, você precisa especificar o caminho para o arquivo, incluindo o nome do fluxo. A sintaxe para especificar um fluxo de dados alternativo é “nome_do_arquivo:nome_do_fluxo”.
Como identificar Alternate Data Streams
Você precisa identificar quais fluxos de dados alternativos estão anexados a um arquivo. Você pode usar o cmdlet abaixo com o parâmetro -Stream para esse propósito.
Get-Item -Path "C:\Backups\Design.txt" -Stream *
Como remover um Fluxo de Dados Alternativo
Uma vez que você saiba o nome do fluxo que deseja remover, pode usar “Remove-Item” para deletá-lo. Suponha que o arquivo “Design.txt” tenha um fluxo de dados alternativo chamado “hiddenstream”, e você queira removê-lo. Você pode usar o cmdlet abaixo incluindo o parâmetro -Stream, que irá deletar apenas o fluxo sem excluir o arquivo.
<Remove-Item -Path “C:\Backups\Design.txt" -Stream hiddenstream
Excluir arquivos com base em condições específicas
Excluir arquivos com base em condições específicas pode ajudar a gerenciar e automatizar a limpeza de diretórios. As condições podem ser baseadas em uma variedade de atributos de arquivo, como data de criação, data de modificação, tamanho, padrão de nome, etc. Abaixo estão alguns exemplos de cmdlets.
Como deletar arquivos mais antigos que uma data específica
Para excluir arquivos mais antigos que uma data específica, você pode usar o cmdlet “Get-ChildItem” para listar todos os arquivos no diretório alvo, filtrá-los com “Where-Object” com base no tempo da última escrita e, em seguida, usar “Remove-Item” para deletar esses arquivos.
$DateLimit = (Get-Date).AddDays(-30)
Get-ChildItem -Path "C:\Backups\" -File | Where-Object { $_.LastWriteTime -lt $DateLimit } | Remove-Item
Este comando excluirá permanentemente os arquivos. É uma boa prática executar primeiro o comando sem “| Remove-Item” para ver quais arquivos seriam excluídos.
Get-ChildItem -Path "C:\Backups\" -File | Where-Object { $_.LastWriteTime -lt $DateLimit }
Como deletar arquivos maiores que um tamanho específico
Para excluir arquivos maiores que um tamanho específico, você pode utilizar o cmdlet Get-ChildItem, filtrar os resultados com o cmdlet “Where-Object” com base no tamanho deles e, em seguida, excluí-los usando Remove-Item.
$SizeLimit = 5MB
Get-ChildItem -Path "C:\Backups\" -File -Recurse | Where-Object { $_.Length -gt $SizeLimit } | Remove-Item
É uma boa prática executar primeiro o comando sem “| Remove-Item” para ver quais arquivos seriam excluídos.
Get-ChildItem -Path "C:\Backups\" -File -Recurse | Where-Object { $_.Length -gt $SizeLimit }
Como excluir arquivos com base em atributos (somente leitura, oculto)
Get-ChildItem -Path "C:\Backups\" -File -Attributes Hidden | Remove-Item -Force
Você pode deletar arquivos baseados em seus atributos, como somente-leitura ou oculto, utilizando a combinação de Get-ChildItem, Where-Object para filtrar arquivos pelos seus atributos, e então deletar usando Remove-Item. É importante notar que tentar deletar arquivos somente-leitura resultará em erro a menos que você use o parâmetro -Force.
Get-ChildItem -Path "C:\Backups\" -File | Where-Object { $_.Attributes -match "ReadOnly" } | Remove-Item -Force
Você também pode filtrar os resultados diretamente usando o parâmetro -Attributes no Get-ChildItem com o valor como somente leitura.
Get-ChildItem -Path "C:\Backups\" -File -Attributes ReadOnly | Remove-Item -Force
Arquivos ocultos podem ser removidos de maneira semelhante.
Get-ChildItem -Path "C:\Backups\" -File | Where-Object { $_.Attributes -match "Hidden" } | Remove-Item -Force
Alternativamente, você pode deletar especificando o parâmetro -Attributes.
Como deletar todas as pastas vazias em um diretório
O cmdlet Get-ChildItem pode ser usado para encontrar as pastas vazias e depois excluí-las usando o Remove-Item.
Get-ChildItem -Path "C:\Backups\" -Directory -Recurse | Where-Object { $_.GetFileSystemInfos().Count -eq 0 } | Remove-Item -Force
Para ver quais pastas vazias seriam excluídas antes de removê-las de fato, substitua Remove-Item -Force por Select-Object FullName.
Get-ChildItem -Path "C:\Backups\" -Directory -Recurse | Where-Object { $_.GetFileSystemInfos().Count -eq 0 } | Select-Object FullName
Conteúdo relacionado selecionado:
Melhores Práticas e Armadilhas Comuns
O cmdlet Remove-Item do powershell é uma forma poderosa de excluir arquivos e diretórios, mas como qualquer ferramenta poderosa, requer manuseio cuidadoso para evitar consequências não intencionais. Abaixo estão algumas melhores práticas e armadilhas comuns ao usar o caminho do item de exclusão de arquivos.
Melhores práticas ao usar o Cmdlet Remove-Item
- Antes de executar um comando que possa deletar arquivos ou diretórios importantes, acrescente o parâmetro -WhatIf. Isso irá simular o comando sem realmente realizar a exclusão, mostrando o que seria afetado.
- Para uma camada extra de proteção, especialmente ao executar scripts ou comandos que excluem itens em massa, use o parâmetro -Confirm. O PowerShell solicitará que você confirme cada exclusão, prevenindo a perda acidental de dados.
- Para evitar deletar os arquivos ou diretórios errados, especifique o caminho completo do item que você está removendo. Isso ajuda a garantir que o comando atinja apenas os itens pretendidos.
- O parâmetro -Recurse é extremamente útil para excluir diretórios e seus conteúdos, mas também pode levar à perda de dados se não for usado com cuidado. Sempre revise quais itens serão excluídos, seja listando-os primeiro com Get-ChildItem ou usando -WhatIf com seu comando Remove-Item.
- Use -ErrorAction para especificar como o PowerShell deve lidar com erros encontrados durante a exclusão. Em scripts, considere envolver comandos Remove-Item em blocos try/catch para gerenciar exceções de forma mais eficaz.
- Antes de executar um comando de exclusão que afeta um número significativo de arquivos ou dados críticos, certifique-se de que você tem backups atualizados.
- Ao escrever scripts que incluem Remove-Item, documente seu código minuciosamente. Explique por que itens estão sendo deletados e quaisquer considerações específicas que você tenha implementado.
- Revise e audite periodicamente scripts e comandos que realizam exclusões para garantir que eles ainda atendam às necessidades atuais e estejam de acordo com as melhores práticas.
- Ao criar scripts para exclusões em massa, teste primeiro em um ambiente que não seja de produção para evitar perda acidental de dados.
Erros Comuns
- Embora os curingas (*) permitam que você direcione vários arquivos ou diretórios de uma só vez, eles também podem aumentar o risco de excluir itens não intencionais. Use-os com cuidado e sempre revise quais itens serão afetados.
- Por padrão, o Remove-Item não excluirá arquivos somente leitura e ocultos, a menos que você use o parâmetro -Force.
- Tentar excluir arquivos ou diretórios sem as permissões necessárias pode resultar em erros. Executar o PowerShell como administrador pode resolver alguns desses problemas.
- Os sistemas de arquivos NTFS suportam recursos como fluxos de dados alternativos, que podem ser ignorados durante a exclusão. Certifique-se de incluir o parâmetro -Stream onde você suspeitar que possa haver fluxos alternativos.
Usando -WhatIf e -Confirm para exclusão segura
Quando se trata de usar Remove-Item para deletar arquivos ou diretórios, os parâmetros -WhatIf e -Confirm podem aumentar significativamente a segurança de suas operações. Esses parâmetros podem ajudar a prevenir exclusões acidentais ao fornecer uma pré-visualização da ação ou solicitar uma confirmação antes de prosseguir.
-WhatIf
O parâmetro -WhatIf simula a execução do comando sem realmente fazer quaisquer alterações.
Remove-Item -Path "C:\Backups\Design.txt" -WhatIf
-Confirmar
O parâmetro -Confirm solicita que você confirme cada exclusão antes de ela ocorrer.
Remove-Item -Path "C:\Backups\Design.txt" -Confirm
Tratamento de erros comuns (Acesso Negado, Arquivo Não Encontrado)
Você pode encontrar erros comuns como “Acesso Negado” ou “Arquivo Não Encontrado”, ao usar o cmdlet Remove-Item.
Erros de Acesso Negado
Este erro ocorre quando você não tem as permissões necessárias no PowerShell para deletar um arquivo ou diretório.
- O parâmetro -Force às vezes pode superar este erro permitindo a exclusão de arquivos somente leitura, mas não irá substituir as permissões de segurança.
- Se -Force não funcionar, pode ser necessário ajustar manualmente as permissões do arquivo ou diretório. Você pode alterar as permissões através das propriedades do arquivo ou pasta no Windows Explorer ou usando cmdlets do PowerShell como “Set-Acl”.
- Executar sua sessão do PowerShell com permissões elevadas (como administrador) pode ajudar a contornar erros de “Acesso Negado” para arquivos que exigem privilégios mais altos para deletar.
Erros de Arquivo Não Encontrado
Este erro ocorre se o caminho especificado em Remove-Item não existir.
- Primeiro, certifique-se de que o caminho que você está tentando excluir realmente existe. Erros de digitação ou especificações incorretas de caminho são fontes comuns desse erro.
- Antes de tentar excluir, use “Test-Path” para verificar se o arquivo ou diretório existe. Isso pode prevenir a ocorrência de erros.
if (Test-Path "C:\Backups\Design.txt") {
Remove-Item -Path "C:\ Backups\Design.txt"
} else {
Write-Host "File not found."
}
- Você pode suprimir a mensagem de erro usando “-ErrorAction SilentlyContinue”, o que é útil em scripts onde um arquivo ausente não é considerado uma falha crítica.
Remove-Item -Path "C:\ Backups\Design.txt" -ErrorAction SilentlyContinue
Conteúdo relacionado selecionado:
Cenários do mundo real
Limpando Arquivos Temporários
Use o cmdlet abaixo para deletar arquivos no diretório “C:\Temp”.
Get-ChildItem -Path C:\Temp\* -Recurse | Remove-Item -WhatIf
Como usamos o parâmetro -WhatIf, este cmdlet mostrará a saída conforme abaixo, remova o -WhatIf e execute o cmdlet novamente para deletar todos os arquivos no diretório temp.
Arquivamento e Exclusão de Logs Antigos
Mova arquivos “.log” de um local para outro, que tenham mais de 30 dias, e depois exclua os registros com mais de 90 dias do arquivo.
$sourcePath = "C:\Backups"
$archivePath = "C:\ArchivedLogs"
Get-ChildItem -Path $sourcePath\*.log -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | ForEach-Object {
Move-Item -Path $_.FullName -Destination $archivePath -WhatIf
}
Revise a ação com “-WhatIf”, depois remova “-WhatIf” para prosseguir.
O script acima moverá todos os arquivos da pasta “Backups” para “ArchivedLogs” que tenham mais de 30 dias, agora você pode deletar os logs antigos da pasta Arquivo que tenham 90 dias, executando o cmdlet abaixo.
Get-ChildItem -Path $archivePath\*.log -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-90) } | Remove-Item -WhatIf
Confirme os alvos e depois execute sem “-WhatIf”.
Conclusão
O cmdlet Remove-Item é projetado para excluir um ou mais itens, principalmente arquivos e diretórios. No entanto, sua funcionalidade vai além de apenas arquivos e pastas, incluindo a exclusão de chaves de registro e variáveis. Um dos aspectos mais críticos do Remove-Item é a segurança. Excluir arquivos e diretórios pode ter consequências irreversíveis se não for manuseado com cuidado. O Remove-Item oferece mecanismos para garantir que tais operações sejam realizadas com segurança usando os parâmetros -WhatIf e -Confirm. O Remove-Item pode ser incorporado em scripts para automatizar tarefas de limpeza rotineiras ou gerenciar sistemas de arquivos de forma mais eficiente, pode ser usado para remover arquivos temporários periodicamente ou para limpar arquivos de log que não são mais necessários. A capacidade de usar curingas e filtros o torna especialmente útil em cenários em que você precisa excluir arquivos ou pastas com base em padrões ou condições específicas.
Tutorial de Scripting do Windows PowerShell (PDF) para Iniciantes
Saiba maisFAQ
Compartilhar em
Saiba Mais
Sobre o autor
Kevin Horvatin
Arquiteto Chefe de Software
Kevin Horvatin é um Arquiteto de Software Líder na Netwrix e responsável pelo Netwrix Privilege Secure. Desenvolvedor de software há mais de 20 anos, ele trabalha com PowerShell e C# desde que foram lançados.
Saiba mais sobre este assunto
PowerShell Write to File: "Out-File" e Técnicas de Saída de Arquivo
Como criar novos usuários do Active Directory com o PowerShell
Como executar um script PowerShell
O que é PowerShell? Um Guia Completo para Suas Funcionalidades & Usos
Dominando o PowerShell Sleep para Gerenciamento de Scripts