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.
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]
}
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
}
}
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
| CPF | Válido |
|---|---|
| 12345678909 | False |
| 11144477735 | True |
| 52998224725 | True |
| 99999999999 | False |
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.