Skip to content

Ferramenta PowerShell para comparação avançada de pastas com relatório visual HTML, processamento paralelo e rastreamento de sincronização. Ideal para verificar diferenças entre pastas de rede e locais.

License

Notifications You must be signed in to change notification settings

mathewsbuzetti/powershell-folder-comparison-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🔄 Comparador de Pastas e Conteúdo - PowerShell

LinkedIn PowerShell Status Documentation

Aplica-se a: ✔️ Windows 10/11 ✔️ Windows Server 2016/2019/2022

📋 Metadados

Metadado Descrição
Título Comparador de Pastas e Conteúdo - Versão Aprimorada
Versão 1.0.0
Data 07/03/2025
Autor Mathews Buzetti
Tags powershell, file-comparison, directory-sync, reporting
Status ✅ Aprovado para ambiente de produção

📷 Visualização do Relatório Interativo

A ferramenta gera um relatório HTML interativo que facilita a visualização e gerenciamento das diferenças entre as pastas comparadas. O relatório inclui gráficos, estatísticas e uma tabela de arquivos com recursos de filtragem e marcação de progresso.

👇 Clique no botão abaixo para visualizar um exemplo de relatório de comparação entre "Documentos vs Backup" 👇

Acessar Demo
O demo mostra todas as funcionalidades do relatório, incluindo gráficos, estatísticas e tabela interativa

image

image

image

📋 Índice

  1. Metadados
  2. Screenshots
  3. Funcionalidades
  4. Pré-requisitos
  5. Como Usar
  6. Configuração de Múltiplas Pastas
  7. Parâmetros do Script
  8. Tratamento de Erros e Feedback
  9. Relatório HTML
  10. Versionamento

💻 Funcionalidades

📊 Principais Recursos

  • Comparação eficiente de dois diretórios
  • Processamento paralelo para melhor desempenho em grandes estruturas de arquivos
  • Relatório HTML interativo com gráficos, estatísticas e tabela de arquivos
  • Controle de progresso visual em tempo real
  • Suporte para caminhos longos
  • Tratamento otimizado para grandes volumes de arquivos
  • Rastreamento de tempo e estatísticas de processamento
  • Sistema de checklist para acompanhamento de sincronização

⚙️ Modos de Processamento

  • Paralelo: Utiliza múltiplos threads para melhor desempenho em sistemas modernos
  • Sequencial: Compatível com ambientes mais restritos como PowerShell ISE

📈 Relatório HTML Avançado

  • Gráficos de distribuição por tamanho de arquivo
  • Gráficos de extensões mais comuns
  • Distribuição por subpastas
  • Tabela completa dos arquivos com filtros e paginação
  • Sistema de progresso para acompanhamento de sincronização
  • Estatísticas detalhadas do resultado da comparação

📋 Pré-requisitos

  • Windows 10/11 ou Windows Server 2016/2019/2022
  • PowerShell 5.1 ou superior
  • Permissões de leitura nas pastas a serem comparadas
  • Navegador moderno para visualizar o relatório HTML (Chrome, Edge, Firefox)
  • PowerShell 7+ para processamento paralelo (opcional, mas recomendado para melhor performance)

🚀 Como Usar

1. Configuração Básica

  1. Baixe o script:

Download Script Compare-FolderStructures.ps1

  1. Abra o script em um editor de texto como Notepad++ ou VSCode
  2. Localize a seção de configuração no final do script:
# Configurações de exemplo (podem ser alteradas conforme necessário)
$outputDir = "C:\temp\COMPARAÇÕES"  # Pasta onde serão salvos os relatórios

# Definir os pares de pastas para comparação
$folderPairs = @(
    # Par 1: Documentos Rede vs Documentos Local
    @{
        Folder1 = "\\servidor\compartilhamento\Documentos"
        Folder2 = "D:\Backup\Documentos"
    }
)

# Executar a comparação com geração automática de nomes
Compare-FolderPairs -FolderPairs $folderPairs -OutputDir $outputDir
  1. Modifique as variáveis:
    • $outputDir: Pasta onde os relatórios HTML serão salvos
    • $folderPairs: Caminhos das pastas que deseja comparar
      • Folder1: Pasta de origem (arquivos que serão verificados)
      • Folder2: Pasta de destino (onde será procurado se o arquivo existe)

2. Execução do Script

Método 1: PowerShell ISE ou Console

  1. Abra o PowerShell ISE ou o Console do PowerShell
  2. Navegue até a pasta do script:
    cd "C:\Caminho\Para\Pasta\Do\Script"
  3. Execute o script:
    .\Compare-FolderStructures.ps1

Método 2: Clique com botão direito

  1. Clique com o botão direito no script
  2. Selecione "Executar com PowerShell"

3. Resultados

  • O script mostrará o progresso em tempo real no console
  • Ao concluir, um relatório HTML será gerado na pasta de saída configurada
  • O relatório será aberto automaticamente no navegador padrão

🔄 Configuração de Múltiplas Pastas

Para comparar múltiplos pares de pastas em uma única execução, modifique a configuração $folderPairs adicionando mais itens ao array:

# Definir os pares de pastas para comparação
$folderPairs = @(
    # Par 1: Documentos Rede vs Documentos Local
    @{
        Folder1 = "\\servidor\compartilhamento\Documentos"
        Folder2 = "D:\Backup\Documentos"
    },
    # Par 2: Imagens Rede vs Imagens Local
    @{
        Folder1 = "\\servidor\compartilhamento\Imagens"
        Folder2 = "D:\Backup\Imagens"
    },
    # Par 3: Projetos Rede vs Projetos Local
    @{
        Folder1 = "\\servidor\compartilhamento\Projetos"
        Folder2 = "D:\Backup\Projetos" 
    }
)

Cada par de pastas gerará um relatório HTML separado na pasta de saída configurada.

🔧 Parâmetros do Script

Função Compare-FolderPairs

Parâmetro Descrição Valores Padrão
FolderPairs Array de objetos com pares Folder1 e Folder2 Obrigatório
OutputDir Diretório onde serão salvos os relatórios "C:\temp"
HandleLongPaths Habilita suporte para caminhos longos $false
UseParallel Utiliza processamento paralelo para melhor desempenho $true
MaxThreads Número máximo de threads para processamento paralelo Número de núcleos do processador

Função Compare-Folders

Parâmetro Descrição Valores Padrão
Folder1Path Caminho da pasta de origem Obrigatório
Folder2Path Caminho da pasta de destino Obrigatório
HTMLReport Caminho para o arquivo HTML de relatório "" (gerado automaticamente)
HandleLongPaths Habilita suporte para caminhos longos $false
UseParallel Utiliza processamento paralelo para melhor desempenho $true
MaxThreads Número máximo de threads para processamento paralelo 0 (usa o padrão global)
ShowDebug Exibe mensagens de debug durante a execução $false

⚠️ Tratamento de Erros e Feedback

O script fornece feedback visual em tempo real com cores diferentes:

  • 🟦 Azul/Ciano: Informações do processo
  • 🟩 Verde: Operações concluídas com sucesso
  • 🟨 Amarelo: Avisos e alertas não críticos
  • 🟥 Vermelho: Erros críticos que impediram a execução

Erros comuns que são tratados automaticamente:

  • Pastas inacessíveis ou inexistentes
  • Problemas de permissão em arquivos
  • Caminhos muito longos (quando HandleLongPaths é ativado)
  • Limitações do PowerShell ISE (modo paralelo é desativado automaticamente)

📊 Relatório HTML

O relatório HTML gerado inclui:

  1. Cabeçalho com Informações Gerais

    • Pastas comparadas (origem e destino)
    • Data e hora da comparação
    • Estatísticas gerais (arquivos analisados, arquivos ausentes, tamanho total)
  2. Resumo da Análise

    • Total de arquivos analisados
    • Arquivos ausentes na pasta de destino
    • Tamanho total dos arquivos ausentes
  3. Visualizações Gráficas

    • Distribuição por tamanho de arquivo
    • Top 10 extensões mais comuns
    • Top 5 subpastas com mais arquivos ausentes
  4. Sistema de Progresso de Sincronização

    • Barra de progresso visual
    • Contadores de arquivos pendentes e concluídos
    • Sistema de checklist para marcar arquivos já processados
  5. Tabela Detalhada

    • Lista completa de todos os arquivos ausentes
    • Filtros e ordenação por qualquer coluna
    • Paginação para melhor navegação
    • Botões para copiar caminhos

🔄 Versionamento

  • Versão: 1.0.0
  • Última atualização: 07/03/2025

About

Ferramenta PowerShell para comparação avançada de pastas com relatório visual HTML, processamento paralelo e rastreamento de sincronização. Ideal para verificar diferenças entre pastas de rede e locais.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published