catbean.pages.dev

Como criar um script PowerShell para mover arquivos mais antigos que 30 dias?

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.

Pré-requisitos

Passo 1: Definir a pasta de origem e destino

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"

Passo 2: Calcular a data limite (30 dias atrás)

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 }

Passo 4: Mover os arquivos antigos

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)"
}

Exemplo Prático

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)

Conclusão

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.