Este script em PowerShell organiza automaticamente arquivos de imagem em uma pasta, agrupando-os em subpastas no formato AAAA-MM com base na data de modificação dos arquivos. Ele também gera um log de movimentações, registrando os arquivos que foram movidos e quando.
- Windows com PowerShell instalado
- Permissão para executar scripts:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser- Altere o caminho da variável
$origemno script para a pasta onde estão suas fotos. - Salve o script com a extensão
.ps1, por exemplo:organizar-fotos.ps1 - Execute o script no PowerShell:
.\organizar-fotos.ps1- As imagens serão organizadas em subpastas por mês com base na data de modificação, e um arquivo
log_movimentacoes.txtserá criado com o histórico.
$origem = "C:\Caminho\Para\Sua\Pasta"📌 Define o diretório onde estão os arquivos que serão organizados.
$logPath = Join-Path $origem "log_movimentacoes.txt"📝 Define o caminho completo para salvar o log de movimentações.
$arquivos = Get-ChildItem $origem -File📁 Lista todos os arquivos na pasta especificada, excluindo subpastas.
foreach ($arquivo in $arquivos) {🔁 Itera sobre cada arquivo encontrado.
if ($arquivo.Extension -match "\.jpg|\.jpeg|\.png|\.gif|\.bmp|\.tiff") {🖼️ Verifica se o arquivo é uma imagem, baseado na extensão.
$pastaDestino = $arquivo.LastWriteTime.ToString("yyyy-MM")📅 Extrai o ano e mês da data de modificação do arquivo para nomear a subpasta.
$caminhoDestino = Join-Path $origem $pastaDestino🔗 Monta o caminho da subpasta destino (ex: C:\Fotos\2025-07).
if (!(Test-Path $caminhoDestino)) {
New-Item -ItemType Directory -Path $caminhoDestino
}📁 Verifica se a subpasta já existe. Se não, cria.
Move-Item $arquivo.FullName -Destination $caminhoDestino🚚 Move o arquivo para a subpasta correspondente.
$logEntry = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - '$($arquivo.Name)' modificado em $($arquivo.LastWriteTime) movido para: $caminhoDestino"
Add-Content -Path $logPath -Value $logEntry📝 Gera uma linha de log com data/hora da execução, nome do arquivo, data de modificação e pasta de destino.
Este projeto é livre para uso e modificação. Sinta-se à vontade para contribuir ou adaptar às suas necessidades.
Criado por Evandro Valente, com apoio técnico do Copilot da Microsoft 😄💙