{"id":26149835,"url":"https://github.com/mathewsbuzetti/powershell-folder-comparison-tool","last_synced_at":"2025-08-21T02:04:52.923Z","repository":{"id":280865725,"uuid":"943435027","full_name":"mathewsbuzetti/powershell-folder-comparison-tool","owner":"mathewsbuzetti","description":"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.","archived":false,"fork":false,"pushed_at":"2025-03-07T19:38:31.000Z","size":247,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T21:49:50.670Z","etag":null,"topics":["backup-verification","data-visualization","directory-sync","file-comparison","file-management","folder-sync","html-report","network-drives","parallel-processing","powershell","windows-utility"],"latest_commit_sha":null,"homepage":"https://github.com/mathewsbuzetti/powershell-folder-comparison-tool/blob/main/README.md","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathewsbuzetti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-05T17:46:46.000Z","updated_at":"2025-03-13T14:17:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"3c4ae7c0-2c52-4827-affd-ac04c0c14c60","html_url":"https://github.com/mathewsbuzetti/powershell-folder-comparison-tool","commit_stats":null,"previous_names":["mathewsbuzetti/compara-pastas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mathewsbuzetti/powershell-folder-comparison-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-folder-comparison-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-folder-comparison-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-folder-comparison-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-folder-comparison-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathewsbuzetti","download_url":"https://codeload.github.com/mathewsbuzetti/powershell-folder-comparison-tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-folder-comparison-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271415496,"owners_count":24755639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup-verification","data-visualization","directory-sync","file-comparison","file-management","folder-sync","html-report","network-drives","parallel-processing","powershell","windows-utility"],"created_at":"2025-03-11T05:49:14.415Z","updated_at":"2025-08-21T02:04:52.918Z","avatar_url":"https://github.com/mathewsbuzetti.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔄 Comparador de Pastas e Conteúdo - PowerShell\n\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-Mathews_Buzetti-blue)](https://www.linkedin.com/in/mathewsbuzetti)\n![PowerShell](https://img.shields.io/badge/PowerShell-5391FE?style=flat-square\u0026logo=powershell\u0026logoColor=white)\n![Status](https://img.shields.io/badge/Status-Production-green?style=flat-square)\n![Documentation](https://img.shields.io/badge/Documentation-Technical-blue?style=flat-square)\n\n**Aplica-se a:** ✔️ Windows 10/11 ✔️ Windows Server 2016/2019/2022\n\n## 📋 Metadados\n\n| Metadado | Descrição |\n|----------|-----------|\n| **Título** | Comparador de Pastas e Conteúdo - Versão Aprimorada |\n| **Versão** | 1.0.0 |\n| **Data** | 07/03/2025 |\n| **Autor** | Mathews Buzetti |\n| **Tags** | `powershell`, `file-comparison`, `directory-sync`, `reporting` |\n| **Status** | ✅ Aprovado para ambiente de produção |\n\n## 📷 Visualização do Relatório Interativo\n\nA 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.\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e👇 Clique no botão abaixo para visualizar um exemplo de relatório de comparação entre \"Documentos vs Backup\" 👇\u003c/strong\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ca href=\"https://mathewsbuzetti.github.io/powershell-folder-comparison-tool/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Acessar%20Demo-Relatório:%20Documentos%20vs%20Backup-brightgreen?style=for-the-badge\u0026logo=html5\" alt=\"Acessar Demo\" width=\"400\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cem\u003eO demo mostra todas as funcionalidades do relatório, incluindo gráficos, estatísticas e tabela interativa\u003c/em\u003e\n\u003c/p\u003e\n\n![image](https://github.com/user-attachments/assets/04e9c742-4919-46bb-a3a8-65139173dbb6)\n\n![image](https://github.com/user-attachments/assets/286d4883-7040-47b1-933b-6d68099f129a)\n\n![image](https://github.com/user-attachments/assets/22f1cc54-f32e-495d-b608-97f34362fb57)\n\n## 📋 Índice\n\n1. [Metadados](#-metadados)\n2. [Screenshots](#-screenshots)\n3. [Funcionalidades](#-funcionalidades)\n4. [Pré-requisitos](#-pré-requisitos)\n5. [Como Usar](#-como-usar)\n6. [Configuração de Múltiplas Pastas](#-configuração-de-múltiplas-pastas)\n7. [Parâmetros do Script](#-parâmetros-do-script)\n8. [Tratamento de Erros e Feedback](#-tratamento-de-erros-e-feedback)\n9. [Relatório HTML](#-relatório-html)\n10. [Versionamento](#-Versionamento)\n\n## 💻 Funcionalidades\n\n### 📊 Principais Recursos\n* Comparação eficiente de dois diretórios\n* Processamento paralelo para melhor desempenho em grandes estruturas de arquivos\n* Relatório HTML interativo com gráficos, estatísticas e tabela de arquivos\n* Controle de progresso visual em tempo real\n* Suporte para caminhos longos\n* Tratamento otimizado para grandes volumes de arquivos\n* Rastreamento de tempo e estatísticas de processamento\n* Sistema de checklist para acompanhamento de sincronização\n\n### ⚙️ Modos de Processamento\n* **Paralelo**: Utiliza múltiplos threads para melhor desempenho em sistemas modernos\n* **Sequencial**: Compatível com ambientes mais restritos como PowerShell ISE\n\n### 📈 Relatório HTML Avançado\n* Gráficos de distribuição por tamanho de arquivo\n* Gráficos de extensões mais comuns\n* Distribuição por subpastas\n* Tabela completa dos arquivos com filtros e paginação\n* Sistema de progresso para acompanhamento de sincronização\n* Estatísticas detalhadas do resultado da comparação\n\n## 📋 Pré-requisitos\n\n* Windows 10/11 ou Windows Server 2016/2019/2022\n* PowerShell 5.1 ou superior\n* Permissões de leitura nas pastas a serem comparadas\n* Navegador moderno para visualizar o relatório HTML (Chrome, Edge, Firefox)\n* PowerShell 7+ para processamento paralelo (opcional, mas recomendado para melhor performance)\n\n## 🚀 Como Usar\n\n### 1. Configuração Básica\n\n1. Baixe o script:\n\n[![Download Script Compare-FolderStructures.ps1](https://img.shields.io/badge/Download%20Script%20Compare--FolderStructures-blue?style=flat-square\u0026logo=powershell)](https://github.com/mathewsbuzetti/powershell-folder-comparison-tool/blob/main/Script/Compare-FolderStructures.ps1)\n   \n3. Abra o script em um editor de texto como Notepad++ ou VSCode\n4. Localize a seção de configuração no final do script:\n\n```powershell\n# Configurações de exemplo (podem ser alteradas conforme necessário)\n$outputDir = \"C:\\temp\\COMPARAÇÕES\"  # Pasta onde serão salvos os relatórios\n\n# Definir os pares de pastas para comparação\n$folderPairs = @(\n    # Par 1: Documentos Rede vs Documentos Local\n    @{\n        Folder1 = \"\\\\servidor\\compartilhamento\\Documentos\"\n        Folder2 = \"D:\\Backup\\Documentos\"\n    }\n)\n\n# Executar a comparação com geração automática de nomes\nCompare-FolderPairs -FolderPairs $folderPairs -OutputDir $outputDir\n```\n\n4. Modifique as variáveis:\n   - `$outputDir`: Pasta onde os relatórios HTML serão salvos\n   - `$folderPairs`: Caminhos das pastas que deseja comparar\n     - `Folder1`: Pasta de origem (arquivos que serão verificados)\n     - `Folder2`: Pasta de destino (onde será procurado se o arquivo existe)\n\n### 2. Execução do Script\n\n**Método 1: PowerShell ISE ou Console**\n1. Abra o PowerShell ISE ou o Console do PowerShell\n2. Navegue até a pasta do script:\n   ```powershell\n   cd \"C:\\Caminho\\Para\\Pasta\\Do\\Script\"\n   ```\n3. Execute o script:\n   ```powershell\n   .\\Compare-FolderStructures.ps1\n   ```\n\n**Método 2: Clique com botão direito**\n1. Clique com o botão direito no script\n2. Selecione \"Executar com PowerShell\"\n\n### 3. Resultados\n- O script mostrará o progresso em tempo real no console\n- Ao concluir, um relatório HTML será gerado na pasta de saída configurada\n- O relatório será aberto automaticamente no navegador padrão\n\n## 🔄 Configuração de Múltiplas Pastas\n\nPara comparar múltiplos pares de pastas em uma única execução, modifique a configuração `$folderPairs` adicionando mais itens ao array:\n\n```powershell\n# Definir os pares de pastas para comparação\n$folderPairs = @(\n    # Par 1: Documentos Rede vs Documentos Local\n    @{\n        Folder1 = \"\\\\servidor\\compartilhamento\\Documentos\"\n        Folder2 = \"D:\\Backup\\Documentos\"\n    },\n    # Par 2: Imagens Rede vs Imagens Local\n    @{\n        Folder1 = \"\\\\servidor\\compartilhamento\\Imagens\"\n        Folder2 = \"D:\\Backup\\Imagens\"\n    },\n    # Par 3: Projetos Rede vs Projetos Local\n    @{\n        Folder1 = \"\\\\servidor\\compartilhamento\\Projetos\"\n        Folder2 = \"D:\\Backup\\Projetos\" \n    }\n)\n```\n\nCada par de pastas gerará um relatório HTML separado na pasta de saída configurada.\n\n## 🔧 Parâmetros do Script\n\n### Função Compare-FolderPairs\n\n| Parâmetro | Descrição | Valores Padrão |\n|-----------|-----------|----------------|\n| `FolderPairs` | Array de objetos com pares Folder1 e Folder2 | Obrigatório |\n| `OutputDir` | Diretório onde serão salvos os relatórios | \"C:\\temp\" |\n| `HandleLongPaths` | Habilita suporte para caminhos longos | $false |\n| `UseParallel` | Utiliza processamento paralelo para melhor desempenho | $true |\n| `MaxThreads` | Número máximo de threads para processamento paralelo | Número de núcleos do processador |\n\n### Função Compare-Folders\n\n| Parâmetro | Descrição | Valores Padrão |\n|-----------|-----------|----------------|\n| `Folder1Path` | Caminho da pasta de origem | Obrigatório |\n| `Folder2Path` | Caminho da pasta de destino | Obrigatório |\n| `HTMLReport` | Caminho para o arquivo HTML de relatório | \"\" (gerado automaticamente) |\n| `HandleLongPaths` | Habilita suporte para caminhos longos | $false |\n| `UseParallel` | Utiliza processamento paralelo para melhor desempenho | $true |\n| `MaxThreads` | Número máximo de threads para processamento paralelo | 0 (usa o padrão global) |\n| `ShowDebug` | Exibe mensagens de debug durante a execução | $false |\n\n## ⚠️ Tratamento de Erros e Feedback\n\nO script fornece feedback visual em tempo real com cores diferentes:\n- 🟦 **Azul/Ciano**: Informações do processo\n- 🟩 **Verde**: Operações concluídas com sucesso\n- 🟨 **Amarelo**: Avisos e alertas não críticos\n- 🟥 **Vermelho**: Erros críticos que impediram a execução\n\nErros comuns que são tratados automaticamente:\n- Pastas inacessíveis ou inexistentes\n- Problemas de permissão em arquivos\n- Caminhos muito longos (quando HandleLongPaths é ativado)\n- Limitações do PowerShell ISE (modo paralelo é desativado automaticamente)\n\n## 📊 Relatório HTML\n\nO relatório HTML gerado inclui:\n\n1. **Cabeçalho com Informações Gerais**\n   - Pastas comparadas (origem e destino)\n   - Data e hora da comparação\n   - Estatísticas gerais (arquivos analisados, arquivos ausentes, tamanho total)\n\n2. **Resumo da Análise**\n   - Total de arquivos analisados\n   - Arquivos ausentes na pasta de destino\n   - Tamanho total dos arquivos ausentes\n\n3. **Visualizações Gráficas**\n   - Distribuição por tamanho de arquivo\n   - Top 10 extensões mais comuns\n   - Top 5 subpastas com mais arquivos ausentes\n\n4. **Sistema de Progresso de Sincronização**\n   - Barra de progresso visual\n   - Contadores de arquivos pendentes e concluídos\n   - Sistema de checklist para marcar arquivos já processados\n\n5. **Tabela Detalhada**\n   - Lista completa de todos os arquivos ausentes\n   - Filtros e ordenação por qualquer coluna\n   - Paginação para melhor navegação\n   - Botões para copiar caminhos\n\n## 🔄 Versionamento\n\n- Versão: 1.0.0\n- Última atualização: 07/03/2025\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathewsbuzetti%2Fpowershell-folder-comparison-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathewsbuzetti%2Fpowershell-folder-comparison-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathewsbuzetti%2Fpowershell-folder-comparison-tool/lists"}