ragfica.pages.dev

Como criar um script PowerShell para ler CSV e validar coluna de CPF?

Validar CPFs em grandes conjuntos de dados pode ser uma tarefa tediosa e propensa a erros quando feita manualmente. Com um script PowerShell, você automatiza o processo, garantindo precisão e rapidez ao verificar a integridade dos números de CPF diretamente do arquivo CSV.

Pré-requisitos

Passo 1: Função de validação de CPF

Primeiro, crie uma função que implementa o algoritmo de validação do CPF. Esta função recebe um CPF como string, limpa caracteres não numéricos e aplica as regras matemáticas para verificar se os dígitos verificadores estão corretos.

function TestaCPF($cpf) {
    $cpf = $cpf -replace '\D' # Remove caracteres não numéricos
    if ($cpf.Length -ne 11 -or $cpf -match '(\d)\1{10}') {
        return $false
    }
    $numeros = $cpf.Substring(0, 9).ToCharArray() | ForEach-Object { [int]$_ }
    $soma = 0
    for ($i = 0; $i -lt 9; $i++) {
        $soma += $numeros[$i] * (10 - $i)
    }
    $resto = ($soma * 10) % 11
    $digito1 = if ($resto -eq 10 -or $resto -eq 11) { 0 } else { $resto }
    $numeros = $cpf.Substring(0, 10).ToCharArray() | ForEach-Object { [int]$_ }
    $soma = 0
    for ($i = 0; $i -lt 10; $i++) {
        $soma += $numeros[$i] * (11 - $i)
    }
    $resto = ($soma * 10) % 11
    $digito2 = if ($resto -eq 10 -or $resto -eq 11) { 0 } else { $resto }
    return $digito1 -eq [int]$cpf[9] -and $digito2 -eq [int]$cpf[10]
}

Passo 2: Ler CSV e validar coluna

Agora, utilize o cmdlet Import-Csv para ler o arquivo CSV e aplique a função de validação em cada linha da coluna desejada. O script abaixo lê o CSV, valida a coluna "CPF" e exibe o resultado.

$csvPath = "C:\caminho\para\arquivo.csv"
$dados = Import-Csv -Path $csvPath
foreach ($linha in $dados) {
    $cpf = $linha.CPF
    $valido = TestaCPF $cpf
    [PSCustomObject]@{
        CPF = $cpf
        Valido = $valido
    }
}

Passo 3: Exportar resultados para novo CSV

Para facilitar a análise, salve os resultados em um novo arquivo CSV, incluindo a coluna de validação.

$csvPath = "C:\caminho\para\arquivo.csv"
$dados = Import-Csv -Path $csvPath
$resultados = foreach ($linha in $dados) {
    $cpf = $linha.CPF
    $valido = TestaCPF $cpf
    [PSCustomObject]@{
        CPF = $cpf
        Valido = $valido
    }
}
$resultados | Export-Csv -Path "C:\caminho\para\resultado_validacao.csv" -NoTypeInformation

Exemplo Prático

CPF Válido
12345678909 False
11144477735 True
52998224725 True
99999999999 False

Conclusão

Com este script PowerShell, você automatiza a validação de CPFs em arquivos CSV, eliminando a necessidade de verificação manual e reduzindo drasticamente a chance de erros. Em poucos minutos, é possível processar centenas ou milhares de registros, garantindo a integridade dos dados para suas operações.