O ProcessarLoteNFe é um script PowerShell especializado para processamento automatizado de arquivos XML de Nota Fiscal Eletrônica (NF-e - modelo 55). O script extrai códigos de produto de campos de informação adicional e os substitui automaticamente nos campos de código de produto padrão.
- ✅ Processamento em lote de múltiplos arquivos XML
- ✅ Extração inteligente de códigos numéricos usando Regex
- ✅ Substituição automática de códigos de produto
- ✅ Preservação de arquivos originais (cria cópias modificadas)
- ✅ Logs detalhados do processo de execução
- ✅ Validação de ambiente e tratamento de erros
- ✅ Compatibilidade multiplataforma (Windows, macOS, Linux)
- PowerShell 7.0+ (PowerShell Core)
- Acesso de leitura/escrita na pasta de origem
brew install powershellwinget install Microsoft.PowerShellwget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y powershell- Clone o repositório:
git clone https://github.com/seu-usuario/ProcessarLoteNFe.git
cd ProcessarLoteNFe- Configure o caminho da pasta de origem:
- Abra o arquivo
ProcessarLoteNFe.ps1 - Edite a linha 21 com o caminho da sua pasta de XMLs:
$pastaOrigem = "/caminho/para/sua/pasta/de/xmls"
- Abra o arquivo
pwsh ProcessarLoteNFe.ps1pwsh -ExecutionPolicy Bypass -File ProcessarLoteNFe.ps1pwsh -NoProfile -Command "& './ProcessarLoteNFe.ps1'"No arquivo ProcessarLoteNFe.ps1, você pode modificar:
# Linha 21: Pasta de origem dos arquivos XML
$pastaOrigem = "/caminho/para/sua/pasta"
# Linha 24: Prefixo dos arquivos de saída
$prefixoArquivoSaida = "arquivoImportacao"O script usa a seguinte expressão regular para extrair códigos:
(?:c[oó]d|c[oó]digo|ref|refer[eê]ncia|produto)[\s\w\p{P}]*?(\d+)$Palavras-chave reconhecidas:
- código, codigo
- ref, referencia, referência
- produto
ProcessarLoteNFe/
├── ProcessarLoteNFe.ps1 # Script principal
├── README.md # Esta documentação
├── LICENSE # Licença MIT
├── CHANGELOG.md # Histórico de versões
├── docs/ # Documentação adicional
│ ├── technical-specs.md # Especificações técnicas
│ └── examples/ # Exemplos de uso
└── tests/ # Testes (futuro)
Iniciando o processo de automação (v2.2)...
Encontrados 1 arquivos XML para processar.
--------------------------------------------------------
[PROCESSANDO]: 11250621110545000201550010000207731665383446-procNFe.xml
[Item 1]: PADRÃO ENCONTRADO! | Alterando cProd de "001" para "12345"
[Item 2]: PADRÃO ENCONTRADO! | Alterando cProd de "002" para "67890"
-> Concluído. 18 alterações salvas como 'arquivoImportacao_11250621110545000201550010000207731665383446-procNFe.xml' na pasta de origem.
--------------------------------------------------------
✅ Processo em lote finalizado.
O script processa a seguinte estrutura XML de NF-e:
<nfe:det nItem="1">
<nfe:prod>
<nfe:cProd>001</nfe:cProd> <!-- Código original -->
</nfe:prod>
<nfe:infAdProd>Código do produto: 12345</nfe:infAdProd> <!-- Informação adicional -->
</nfe:det>Resultado:
<nfe:det nItem="1">
<nfe:prod>
<nfe:cProd>12345</nfe:cProd> <!-- Código extraído e substituído -->
</nfe:prod>
<nfe:infAdProd>Código do produto: 12345</nfe:infAdProd>
</nfe:det>- Linhas 1-15: Cabeçalho e documentação
- Linhas 17-25: Configurações do usuário
- Linhas 27-40: Validação do ambiente
- Linhas 42-108: Loop principal de processamento
- PowerShell 7.5.2+
- System.Xml.XmlDocument para manipulação de XML
- Regex para extração de padrões
- Namespace Manager para XML com namespaces
Para testar o script:
- Crie uma pasta de teste com arquivos XML de NF-e
- Configure o caminho no script
- Execute o script e verifique os logs
- Confirme que os arquivos foram processados corretamente
- ✅ Verde: Sucesso e conclusão
- 🟡 Amarelo: Avisos e informações
- 🔴 Vermelho: Erros críticos
- ⚪ Branco: Detalhes de processamento
- ⚫ Cinza: Arquivos ignorados
Erro: "Pasta não encontrada"
- Verifique o caminho na linha 21
- Confirme permissões de acesso
Erro: "Nenhum arquivo XML encontrado"
- Verifique se existem arquivos .xml na pasta
- Confirme a extensão dos arquivos
Erro: "Erro crítico ao processar"
- Verifique se o XML é válido
- Confirme se é uma NF-e (modelo 55)
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Desenvolvedor Backend Especializado em XML de NF-e
- Versão: 2.2.0
- Última atualização: Dezembro 2024
- Compatibilidade: PowerShell 7.0+
- Issues: GitHub Issues
- Documentação: docs/
- Exemplos: docs/examples/
⭐ Se este projeto foi útil, considere dar uma estrela no GitHub!