Se você tiver uma pasta que fica constantemente cheia, a exclusão de arquivos antigos não apenas restaura o valioso espaço em disco, mas também facilita o gerenciamento da pasta. Embora você possa verificar manualmente o diretório e remover arquivos antigos, você pode tornar sua vida muito mais fácil com a magia da automação do PowerShell. Ao executar o script abaixo, você pode excluir automaticamente todos os arquivos anteriores a um número especificado de dias, 90 dias, por exemplo.
Eu criei este script inspirado no recurso Storage Sense do Windows, que exclui automaticamente arquivos mais antigos de a pasta Lixeira e Downloads. Embora o Storage Sense esteja limitado a essas duas pastas, meu script permite que você especifique qualquer diretório e o número de dias de espera antes de excluir um arquivo.
Então, sem mais delongas, deixe-me apresentar o PowerShell script para excluir arquivos com mais de X dias e mostrar como executá-lo manualmente e dentro do cronograma.
Script do PowerShell para exclusão automática de arquivos anteriores a X dias
<#
Nome do script: Excluir arquivos antigos
Descrição: este script exclui à força arquivos não modificados em um número de dias especificado pelo usuário. 90 dias, por padrão.
Autor: Bashkarla Vamsi
URL: https://windowsloop.com
#>
# Defina o caminho do diretório diretamente no script
$ folderPath=”” # Adicione o caminho da pasta entre aspas. Por exemplo:”C:\Users\YourUsername\Documents\TargetFolder”
# Defina o número de dias de espera antes de excluir um arquivo
$days=90 # Altere esse valor se necessário. Padrão=90
# Verifique se a variável folderPath está definida
if ($folderPath-eq””) {
Write-Host”Erro: O caminho da pasta não está definido. Edite o script e defina a variável `$folderPath` para o diretório que você deseja limpar.”
exit 1 # Sai com código de erro 1 quando nenhum caminho é definido
} elseif (Test-Path $folderPath) {
# Obtenha a data de hoje
$currentDate=Get-Date
# Calcule o limite de data com base nos dias especificados pelo usuário
$dateLimit=$currentDate.AddDays(-$days)
# Obtenha todos os arquivos na pasta
$files=Get-ChildItem-Path $folderPath-File
# Loop através de cada arquivo
foreach ($file in $files) {
# Verifique se o horário da última modificação do arquivo é anterior ao número de dias especificado
if ($file.LastWriteTime-lt $dateLimit) {
# Exclua o arquivo à força
Remove-Item $file.FullName-Force
Write-Host”Excluído: $($file.FullName)”
}
}
Write-Host”Limpeza concluída.”
exit 0
} else {
Write-Host”Erro: o caminho da pasta’$folderPath’não existe ou não está acessível. Verifique o caminho e certifique-se de que esteja correto. Edite o script para atualizar o caminho, se necessário.”
exit 1 # Sai com código de erro 1 quando o caminho não existe
}
Aqui está um rápido resumo de como o script funciona e como você pode personalizá-lo para atender às suas necessidades:
Personalização de script
Caminho do diretório ($folderPath): é aqui que você especifica o caminho da pasta a partir da qual você deseja excluir arquivos antigos. Simplesmente substitua o caminho fictício C:\Users\YourUsername\Documents\TargetFolder pelo caminho real.
Número de dias ($. dias): Esta variável determina a idade que os arquivos precisam ter antes de serem excluídos. Por padrão, esta variável é definida como 90. Isso significa que o script exclui arquivos com mais de 90 dias. qualquer número que lhe convier. Por exemplo, para esperar 120 dias antes de excluir arquivos, basta alterar 90 para 120.
Explicação: Como funciona o script?
Primeiro, o script verifica. se a pasta especificada existir. Se existir, ela obterá a data de hoje com o Get-Date cmdlet e subtrai o número de dias especificados pelo usuário para encontrar o limite de data.
Em seguida, ele lista todos os arquivos na pasta especificada usando o cmdlet Get-ChildItem e para cada arquivo, se a data da última modificação for anterior ao limite de data, ele excluirá o arquivo usando o Remove-Item cmdlet.
Se você não inseriu um caminho de pasta ou se a pasta não existir, o script interromperá a execução e mostrará a mensagem de erro usando o Write-Host cmdlet.
Etapas para executar o script do PowerShell
Antes de começar (cuidado)
O script excluirá os arquivos permanentemente (ou seja, ignorará a lixeira ) e não há opção de desfazer. Portanto, tenha cuidado. Sempre teste primeiro o script em uma pasta de teste ou não crítica. Depois de verificar se ele funciona de acordo com suas expectativas, só então use-o na pasta real. Se os arquivos forem importantes, faça backup deles regularmente.
Etapas
Siga estas etapas para executar o script para excluir arquivos anteriores a um número especificado de dias em uma pasta:
Salve o script
1. Abra o Bloco de Notas no menu Iniciar.
2. Copie o script acima e cole no Bloco de Notas.
3. Modifique a variável $folderPath para adicionar o caminho da pasta entre aspas.
4. Opcionalmente, modifique a variável $days para alterar a idade dos arquivos antes de serem excluídos. O padrão é 90 dias.
5. Selecione Arquivo > Salvar.
6. Vá para uma pasta onde deseja salvar o arquivo.
7. Digite DeleteOldFiles.ps1 no campo “Nome do arquivo”.
8. Selecione Todos os arquivos no menu suspenso “Tipo de arquivo”.
9. Clique em Salvar.
Observação: você também pode baixar o script na minha página do GitHub , abra-o com o Bloco de notas, altere as variáveis “$folderPath”e “$days”conforme necessário e salve-o.
Executar o script
Para executar o script, siga as instruções etapas abaixo:
1. Pressione o botão Iniciar.
2. Pesquise Windows PowerShell e clique em Executar como administrador.
3. Execute o seguinte comando para alterar temporariamente a política de execução para irrestrita.
Set-ExecutionPolicy-ExecutionPolicy irrestrito-Scope Process
4. Digite A e pressione Enter.
5. Use o comando abaixo para navegar até a pasta com o arquivo de script.
cd”C:\path\to\script\folder”
6. Digite o seguinte comando para executar o script. Se você usou um nome diferente para o script, altere o comando de acordo.
.\”DeleteOldFiles.ps1″
Assim que você executar o script, ele verificará a pasta e excluirá todos os arquivos anteriores ao número de dias especificado. Uma vez feito isso, você verá a mensagem “Limpeza concluída”.
Observação: se você não fizer isso deseja alterar a política de execução sempre que executar um script do PowerShell, altere a política de execução permanentemente.
Agende o script com o Agendador de tarefas
Se você deseja executar o script do PowerShell dentro do cronograma (em um horário ou evento específico), você pode usar o Agendador de Tarefas. Já escrevi um guia detalhado sobre como fazer isso, siga as etapas desse artigo.
Wrapping – Script de automação do PowerShell para excluir o antigo. Arquivos
Como você pode ver, a automação do PowerShell facilita a exclusão de arquivos antigos. Ao usar o script, certifique-se de personalizar o caminho da pasta e o número de dias para que o script funcione corretamente e de acordo com suas necessidades. , lembre-se de que, quando você executa o script, os arquivos são excluídos permanentemente e não há como desfazê-lo. Portanto, tome cuidado e teste o script em uma pasta de teste antes de usá-lo em uma pasta real. Se você deseja que o script seja executado automaticamente, use o Agendador de Tarefas para agendá-lo.
Se você tiver alguma dúvida ou precisar de ajuda, comente abaixo. Eu responderei.
Relacionado: