eso que buscas se llama módulo que es el resto de la división de enteros.
hice el código, a lo mejor te sirve, o si prefieres escribe tu propia versión.
La parte que buscas es:
saludos.
hice el código, a lo mejor te sirve, o si prefieres escribe tu propia versión.
La parte que buscas es:
Código [Seleccionar]
set /a "dc=11-suma%%11"
Código [Seleccionar]
@echo off
:ini
call :getRut
call :validaRut
if errorlevel 1 (
echo.Rut invalido
) else (
echo.Rut valido
)
pause
goto :eof
:getRut
setlocal enableextensions enabledelayedexpansion
set /p rut=Escriba rut:
(endlocal & set "rut=%rut%")
goto :eof
:validaRut
setlocal enableextensions enabledelayedexpansion
if defined rut (set "rut=!rut:.=!")
echo.!rut!|findstr.exe /r /i "\<[0-9]*\-[0123456789K]\>">nul 2>&1
if errorlevel 1 (exit /b 1)
set "numeros=!rut:~0,-2!"
set "n=!numeros!"
set "dv=!rut:~-1!"
set /a "c=2"
set /a "suma=0"
:mult
set "d=!n:~-1!"
set /a "suma+=d*c"
set /a "c+=1"
if !c! gtr 7 (set /a "c=2")
set "n=!n:~0,-1!"
if defined n (goto :mult)
set /a "dc=11-suma%%11"
set "dt=!dc!"
if !dc! equ 10 (set "dt=K")
if !dc! equ 11 (set "dt=0")
set /a ret=1
if /i "!dt!" equ "!dv!" (set /a ret=0)
exit /b !ret!
saludos.