Batch - Funções com CPF: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
E RG: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
- Código:
@echo off
:: http://paste.ubuntu.com/595473/
goto :menu
:error
echo. Op‡Æo invalida
:menu
Title Fun‡äes com CPF by NeoqJav
ECHO. ******************************
echo. * Fun‡äes com CPF: *
ECHO. ******************************
echo. *1. Descobrir D¡gitos Finais *
echo. *2. Analisar se CPF ‚ valido *
echo. *3. Descobre D¡gito Errado *
echo. *4. Sair *
echo. ******************************
set /p opcao=Digite sua op‡Æo:
cls
if %opcao%==1 goto:digitos
if %opcao%==2 goto:validos
if %opcao%==3 goto:anagramas
if %opcao%==4 goto:eof
goto :error
:digitos
set /p cpf=Digite seu CPF sem os dois £ltimos digito e sem pontos:
if "!cpf:~8,1!"=="" goto :digitos
set /a soma=%cpf:~0,1% * 10 + %cpf:~1,1% *9 + %cpf:~2,1% *8 + %cpf:~3,1% *7 + %cpf:~4,1% *6 + %cpf:~5,1% *5 + %cpf:~6,1% *4 + %cpf:~7,1% *3 + %cpf:~8,1% *2
setlocal ENABLEDELAYEDEXPANSION
set /a teste=!soma! %% 11
if !teste!==1 (set teste=0 & goto :pula1 )
set /a teste=11 - teste
:pula1
set d1=!teste!
set /a soma=%cpf:~0,1% * 11 + %cpf:~1,1% *10 + %cpf:~2,1% *9 + %cpf:~3,1% *8 + %cpf:~4,1% *7 + %cpf:~5,1% *6 + %cpf:~6,1% *5 + %cpf:~7,1% *4 + %cpf:~8,1% *3 + !teste! * 2
set /a teste=!soma! %% 11
if !teste!==1 (set teste=0 & goto :pula2 )
set /a teste=11 - teste
:pula2
set d2=!teste!
echo. Digito verificador ‚ !d1!!d2!
pause
cls
goto :menu
:sai
:validos
set /p cpf=Digite seu CPF [com 11 D¡gitos Num‚ricos] :
if "%cpf:~10,1%"=="" goto :validos
set /a soma=%cpf:~0,1% * 10 + %cpf:~1,1% *9 + %cpf:~2,1% *8 + %cpf:~3,1% *7 + %cpf:~4,1% *6 + %cpf:~5,1% *5 + %cpf:~6,1% *4 + %cpf:~7,1% *3 + %cpf:~8,1% *2
setlocal ENABLEDELAYEDEXPANSION
set /a teste=!soma! %% 11
if !teste!==1 (set teste=0 & goto :pula1 )
set /a teste=11 - teste
:pula1
set d1=!teste!
set /a soma=%cpf:~0,1% * 11 + %cpf:~1,1% *10 + %cpf:~2,1% *9 + %cpf:~3,1% *8 + %cpf:~4,1% *7 + %cpf:~5,1% *6 + %cpf:~6,1% *5 + %cpf:~7,1% *4 + %cpf:~8,1% *3 + !teste! * 2
set /a teste=!soma! %% 11
if !teste!==1 (set teste=0 & goto :pula2 )
set /a teste=11 - teste
:pula2
set d2=!teste!
title !d1!!d2!
if /I "!d1!!d2!" EQU "!cpf:~-2! " (echo. CPF: !cpf! VALIDO & goto:saiuval )
if /I "!d1!!d2!" EQU "!cpf:~-2!" (echo. CPF: !cpf! VALIDO )
if /I "!d1!!d2!" NEQ "!cpf:~-2!" (echo. CPF: !cpf! INVALIDO )
:saiuval
pause
cls
goto :menu
:anagramas
set /p bkp=Digite seu CPF [com 11 D¡gitos Num‚ricos] :
if /i "%bkp:~10,1%" NEQ "" goto :okanagra
goto :anagramas
:okanagra
if /i "%bkp:~11,1%" NEQ "" goto :anagramas
for /l %%i in (0,1,9) do (call :valido %%i!bkp:~1!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~1,1!" call :valido !bkp:~0,1!%%i!cpf:~2!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~2,1!" call :valido !bkp:~0,2!%%i!cpf:~3!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~3,1!" call :valido !bkp:~0,3!%%i!cpf:~4!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~4,1!" call :valido !bkp:~0,4!%%i!cpf:~5!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~5,1!" call :valido !bkp:~0,5!%%i!cpf:~6!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~6,1!" call :valido !bkp:~0,6!%%i!cpf:~7!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~7,1!" call :valido !bkp:~0,7!%%i!cpf:~8!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~8,1!" call :valido !bkp:~0,8!%%i!cpf:~9!)
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~9,1!" call :valido !bkp:~0,9!%%i!cpf:~10!)
for /l %%j in (0,1,9) do (
for /l %%i in (0,1,9) do ( if /i "%%i" NEQ "!bkp:~10,1!" call :valido !cpf:~0,9!%%j%%i)
)
pause
cls
goto :menu
:valido
set cpf=%~1
set /a soma=%cpf:~0,1% * 10 + %cpf:~1,1% *9 + %cpf:~2,1% *8 + %cpf:~3,1% *7 + %cpf:~4,1% *6 + %cpf:~5,1% *5 + %cpf:~6,1% *4 + %cpf:~7,1% *3 + %cpf:~8,1% *2
setlocal ENABLEDELAYEDEXPANSION
set /a teste=!soma! %% 11
if !teste!==1 (set teste=0 & goto :pula1 )
set /a teste=11 - teste
:pula1
set d1=!teste!
set /a soma=%cpf:~0,1% * 11 + %cpf:~1,1% *10 + %cpf:~2,1% *9 + %cpf:~3,1% *8 + %cpf:~4,1% *7 + %cpf:~5,1% *6 + %cpf:~6,1% *5 + %cpf:~7,1% *4 + %cpf:~8,1% *3 + !teste! * 2
set /a teste=!soma! %% 11
if !teste!==1 (set teste=0 & goto :pula2 )
set /a teste=11 - teste
:pula2
set d2=!teste!
title !d1!!d2!
if /I "!d1!!d2!" EQU "!cpf:~9,1!!cpf:~10,1!" (echo. CPF: !cpf! VALIDO)
if /I "!d1!!d2!" EQU "!cpf:~9,1!!cpf:~10,1! " (echo. CPF: !cpf! VALIDO)
exit/b
E RG: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
- Código:
@echo off
:: http://paste.ubuntu.com/595474/
:menu
cls
echo. ******************************
echo. * Fun‡äes com RG *
ECHO. *1. Descobrir £ltimo d¡gito *
echo. *2. Ver se RG ‚ valido *
echo. *0. SAIR *
echo. ******************************
set /p opcao=Digite sua opcao:
if %opcao%==1 goto :digitorg
if %opcao%==2 goto :validos
if %opcao%==0 goto :eof
GOTO :menu
:digitorg
set /p rg=Digite seu rg sem o £ltimo digito e sem pontos:
if "%rg:~7,1%"=="" goto :digitorg
set /a soma=%rg:~0,1% * 2 + %rg:~1,1% *3 + %rg:~2,1% *4 + %rg:~3,1% *5 + %rg:~4,1% *6 + %rg:~5,1% *7 + %rg:~6,1% *8 + %rg:~7,1% *9
setlocal ENABLEDELAYEDEXPANSION
for /l %%i in ( 0,1,9 ) do (
set /a teste=!soma! + %%i
set /a teste=!teste! %% 11
if !teste!==0 echo. D¡gito verificador ‚ %%i
)
pause
goto :menu
:validos
set /p rg=Digite seu rg :
if "%rg:~8,1%"=="" goto :validos
set /a soma=%rg:~0,1% * 2 + %rg:~1,1% *3 + %rg:~2,1% *4 + %rg:~3,1% *5 + %rg:~4,1% *6 + %rg:~5,1% *7 + %rg:~6,1% *8 + %rg:~7,1% *9
setlocal ENABLEDELAYEDEXPANSION
set digito=x
for /l %%i in ( 0,1,9 ) do (
set /a teste=!soma! + %%i
set /a teste=!teste! %% 11
if !teste!==0 set digito=%%i
)
if %digito%==%rg:~8,1% echo. RG: %rg% VALIDO
if /i %digito% NEQ %rg:~8,1% ( echo. RG: %rg% INVALIDO )
pause
goto :menu