catbean.pages.dev

Como validar um CNPJ usando um algoritmo no PowerShell?

Validar um CNPJ manualmente é uma tarefa propensa a erros e demorada. Com um algoritmo implementado no PowerShell, você automatiza o processo, garantindo precisão e rapidez na verificação de documentos fiscais.

Pré-requisitos

Implementando o Algoritmo de Validação de CNPJ

O algoritmo de validação de CNPJ consiste em dois dígitos verificadores calculados a partir dos primeiros 12 dígitos do número. O script abaixo implementa essa lógica de forma eficiente.

function Test-CNPJ {
    param([string]$CNPJ)

    # Remover caracteres não numéricos
    $CNPJ = $CNPJ -replace '\D', ''

    # Verificar se o CNPJ tem 14 dígitos
    if ($CNPJ.Length -ne 14) {
        return $false
    }

    # Verificar se todos os dígitos são iguais (ex: 00.000.000/0000-00)
    if ($CNPJ -match '^(\d)\1{13}$') {
        return $false
    }

    # Calcular o primeiro dígito verificador
    $soma = 0
    $pesos = @(5,4,3,2,9,8,7,6,5,4,3,2)
    for ($i = 0; $i -lt 12; $i++) {
        $soma += [int]$CNPJ[$i] * $pesos[$i]
    }
    $resto = $soma % 11
    $digito1 = if ($resto -lt 2) { 0 } else { 11 - $resto }

    # Calcular o segundo dígito verificador
    $soma = 0
    $pesos = @(6,5,4,3,2,9,8,7,6,5,4,3,2)
    for ($i = 0; $i -lt 13; $i++) {
        $soma += [int]$CNPJ[$i] * $pesos[$i]
    }
    $resto = $soma % 11
    $digito2 = if ($resto -lt 2) { 0 } else { 11 - $resto }

    # Comparar os dígitos calculados com os informados
    $digitoCalculado = "$($digito1)$($digito2)"
    $digitoInformado = "$($CNPJ[12])$($CNPJ[13])"

    return $digitoCalculado -eq $digitoInformado
}

# Exemplo de uso
$CNPJ = "12.345.678/0001-95"
if (Test-CNPJ -CNPJ $CNPJ) {
    Write-Host "CNPJ válido: $CNPJ"
} else {
    Write-Host "CNPJ inválido: $CNPJ"
}

Exemplo Prático

CNPJ de Entrada Válido? Observação
12.345.678/0001-95 Sim CNPJ válido e bem formado.
11.111.111/1111-11 Não CNPJ inválido (dígitos repetidos).
12.345.678/0001-96 Não CNPJ inválido (dígito verificador incorreto).

Conclusão

Com este algoritmo no PowerShell, você valida CNPJs de forma rápida e confiável, eliminando a necessidade de verificação manual e reduzindo significativamente o risco de erros em processos de validação de documentos fiscais.