Haber si os gusta, y sois capaces de resolverlo
@echo off
:asi
set "clave="
echo.
echo.
echo Salir [Esc]
echo.
echo Introduce la clave:
if not exist "keyboard.exe" ( goto :key ) else ( goto :giltza )
:giltza
keyboard
if %errorlevel% EQU 49 (<nul set "clave=1" & goto :teclado)
if %errorlevel% EQU 50 (<nul set "clave=2" & goto :teclado)
if %errorlevel% EQU 51 (<nul set "clave=3" &goto :teclado)
if %errorlevel% EQU 52 (<nul set "clave=4" &goto :teclado)
if %errorlevel% EQU 53 (<nul set "clave=5" &goto :teclado)
if %errorlevel% EQU 54 (<nul set "clave=6" &goto :teclado)
if %errorlevel% EQU 55 (<nul set "clave=7" &goto :teclado)
if %errorlevel% EQU 56 (<nul set "clave=8" &goto :teclado)
if %errorlevel% EQU 57 (<nul set "clave=9" &goto :teclado)
if %errorlevel% EQU 48 (<nul set "clave=0" &goto :teclado)
if %errorlevel% EQU 13 (call :prog "%T%")
if %errorlevel% EQU 27 (exit /b)
goto giltza
:teclado
cls
set T=%T%%clave%
echo Introduce la clave: %T%
goto giltza
:prog
set /a "Pu= %T:~4,1% + %T:~6,1%" >nul 2>&1
set /a "Pd= %T:~6,1% + %T:~5,1%" >nul 2>&1
set /a "Pt= %T:~2,1% - %T:~5,1% - %T:~5,1%" >nul 2>&1
set /a "Pc= %T:~4,1% + %T:~-1%" >nul 2>&1
set /a "Pz= %T:~-1% + %T:~5,1%" >nul 2>&1
set /a "Ps= %T:~1,1%" >nul 2>&1
set /a "Pst= %T:~6,1% + %T:~5,1%" >nul 2>&1
set /a "Po= %T:~4,1% * %T:~-1%" >nul 2>&1
set /a "Pn= %T:~4,1% - %T:~5,1% + %T:~7,1%" >nul 2>&1
set /a "Su= %T:~5,1%" >nul 2>&1
set /a "Sd= %T:~2,1% - %T:~5,1%" >nul 2>&1
set /a "St= %T:~7,1%" >nul 2>&1
set /a "Sc= %T:~-1%" >nul 2>&1
set /a "Tu= %T:~0,1% + %T:~5,1% + %T:~7,1%" >nul 2>&1
set /a "Td= %T:~1,1%" >nul 2>&1
set /a "Tt= %T:~0,1%" >nul 2>&1
set /a "Tc= %T:~2,1% + %T:~5,1%" >nul 2>&1
set /a "Tz= %T:~3,1% - %T:~-1%" >nul 2>&1
set /a "Ts= %T:~3,1% - %T:~2,1% - %T:~5,1%" >nul 2>&1
@set "sum=%Pu%%Pd%%Pt%%Pc%%Pz%%Ps%%Pst%%Po%%Pn%" >nul 2>&1
@set /a "sumd=(%Su%%Sd%%St%%Sc%) * (%Tu%%Td%%Tt%%Tc%%Tz%%Ts%)" >nul 2>&1
if "%sum%" NEQ "%sumd%" (echo Incorrecto & goto garbi) else (goto dos)
:dos
@set /a "Su=%T:~0,1% / (%T:~4,1%-%T:~5,1%)" >nul 2>&1
@set /a "Sd=%T:~-1% - %T:~7,1%" >nul 2>&1
@set "St=%T:~-2%" >nul 2>&1
@set "Sc=%T:~4,2%" >nul 2>&1
@set /a "Tu=%T:~6,1% / %T:~-1%" >nul 2>&1
@set /a "Td=(%T:~2,1% - %T:~5,1%) - (%T:~4,1% +%T:~7,1%)" >nul 2>&1
@set "Tt=%T:~-1%" >nul 2>&1
@set /a "Tc=%T:~0,1% + %T:~7,1%" >nul 2>&1
@set "Tz=%T:~5,1%%T:~2,1%" >nul 2>&1
@set /a "Ts=(%T:~3,3% - %T:~0,3%) + %T:~6,2%+%T:~5,1%+%T:~2,1%" >nul 2>&1
set /a "sam=(%Su% * %Sd% * %St% * %Sc%) + %T:~5,1%" >nul 2>&1
set /a "samd= (%Tu% * %Td% * %Tt% * %Tc% * %Tz% * %Ts%) + %T:~7,1%" >nul 2>&1
set /a "res= %sam% * %samd%" >nul 2>&1
if "%res%" NEQ "%sumd%" (echo incorrecto & goto garbi) else (echo correcto! & pause & goto lau)
:garbi
cls
echo incorrecto
pause >nul
set "clave="
set "T="
goto asi
:lau
cls
echo.
echo.
echo ******************* FELICIDADES!! ***********************
set "clave="
set "T="
goto asi
:key
(
echo n keyboard.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.
)>keyboard.dat
type keyboard.dat|debug>NUL 2>&1
del /f/q/a "keyboard.exe">NUL 2>&1
ren keyboard.dat "keyboard.exe" >nul
goto giltza
Un saludo