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:

Categories: IT Info