Un programa simple para calcular el ultimo digito del rut.
Todo segun Wikipedia.
Cualquier pregunta se hace por aqui
Saludos
Código:
@echo off
color a
title Verificador RUT Th3_p4t0x
:rv
cls
echo.
echo Si el rut tiene 7 digitos sin verificador, agregue un espacio al principio.
echo.
::Se define la variable "rut" que sufrira cambios en todo el proceso.
set/p "rut=Ingrese el rut: "
::Cuando no se escribe nada el programa no se cierra.
if not defined rut goto rv
::Se toma el rut de derecha a izquierda.
set "ocho=%rut:~7%"
set "siete=%rut:~6,-1%"
set "seis=%rut:~5,-2%"
set "cinco=%rut:~4,-3%"
set "cuatro=%rut:~3,-4%"
set "tres=%rut:~2,-5%"
set "dos=%rut:~1,-6%"
set "uno=%rut:~0,1%"
::Se multiplica cada digito por los numeros que componen la serie numerica 2,3,4,5,6,7.
set/a ocho=ocho*2
set/a siete=siete*3
set/a seis=seis*4
set/a cinco=cinco*5
set/a cuatro=cuatro*6
set/a tres=tres*7
set/a dos=dos*2
set/a uno=uno*3
::Se suma el resultado de los anteriores.
set/a af=%ocho%+%siete%+%seis%+%cinco%+%cuatro%+%tres%+%dos%+%uno%
::Se aplica el modulo 11:
::Se divide por 11
set/a div=%af%/11
::Y se determina el resto
set/a res=%af%%%11
::A 11 se le resta el resto.
set/a valid=11-%res%
::Si el resultado es 11 el verificador sera 0.
if %valid%==11 set "valid=0"
::Si el resultado es 10 el verificador sera K.
if %valid%==10 set "valid=K"
::Rut completo.
echo.
echo Su rut completo es %rut%-%valid%
echo.
pause
goto rv
Todo segun Wikipedia.
Cualquier pregunta se hace por aqui

Saludos
Última edición: