Organizar arquivos antigos manualmente pode ser uma tarefa tediosa e propensa a erros. Com um script PowerShell, você automatiza o processo de forma rápida e confiável, garantindo que apenas os arquivos que não são mais necessários sejam movidos para um local de arquivamento.
Primeiro, identifique o caminho completo da pasta que contém os arquivos a serem verificados e o local para onde eles serão movidos. É recomendável usar caminhos absolutos para evitar ambiguidades.
$sourceFolder = "C:\PastaOrigem"
$destinationFolder = "C:\PastaDestino"
O script precisa determinar qual é a data limite para considerar um arquivo como "antigo". Isso é feito subtraindo 30 dias da data atual.
$dateLimit = (Get-Date).AddDays(-30)
Use o cmdlet Get-ChildItem para listar todos os arquivos na pasta de origem e filtre aqueles cuja data de última modificação é anterior à data limite.
$oldFiles = Get-ChildItem -Path $sourceFolder -Recurse | Where-Object { $_.LastWriteTime -lt $dateLimit }
Com a lista de arquivos antigos em mãos, use o cmdlet Move-Item para transferi-los para a pasta de destino. O parâmetro -Force garante que arquivos existentes sejam substituídos sem perguntas adicionais.
foreach ($file in $oldFiles) {
Move-Item -Path $file.FullName -Destination $destinationFolder -Force
Write-Host "Moved: $($file.Name)"
}
| Arquivo | Data de Modificação | Ação do Script |
|---|---|---|
| relatorio_janeiro.xlsx | 15/03/2024 | Movido (mais antigo que 30 dias) |
| dados_atualizados.csv | 05/04/2024 | Ignorado (recente) |
| backup_antigo.zip | 10/02/2024 | Movido (mais antigo que 30 dias) |
Com este script PowerShell, você automatiza a tarefa de mover arquivos antigos em segundos, mantendo seu sistema organizado e evitando o acúmulo desnecessário de dados. Basta ajustar os caminhos das pastas e a quantidade de dias conforme suas necessidades específicas.