Lo que hace es simular una autenticación, al presionar las teclas no se muestra, al igual que en las autenticaciones en sistemas unix, unix like. Le limité el rango de teclas presionadas al abecedario, los numeros, y el backspace.
Aquí pueden verlo en acción: http://4dos.net84.net/ (necesitan tener instalado java en su computador), al ingresar la palabra "carlos", se autentifica y se procede a ejecutar el juego del tic tac toe (otro script para 4dos, que no hice yo porque está muy bueno xD). Recomiendo presionar "Type key", para entrar en el foco de la pantalla.
Login.btm
Código:
@UNALIAS *
@ECHO OFF
@CLS
:INI
GOSUB LOGIN PASSWORD
IF NOT "carlos"=="%PASSWORD" (
ECHO AUTHENTIFICATION FAILED
GOTO INI
)
ECHO.
TICTACTO.BTM
GOTO :EOF
:LOGIN [VARIABLENAME]
::Login function for 4DOS 7.50
::version:0.1
::author:Carlos.
ECHO.
ECHOS ENTER PASSWORD:
IF DEFINED CHAR UNSET CHAR
IF DEFINED %VARIABLENAME UNSET %VARIABLENAME
DO WHILE NOT DEFINED CHAR
INKEY /P /X /K"0123456789abcdefghijklmnopqrstuvwxyz[Bksp][Enter]" %%CHAR
IFF "%@ASCII[%CHAR]" EQ "8" THEN
SET %VARIABLENAME=%@INSTR[0,%@EVAL[%@LEN[%[%VARIABLENAME]]-1],%[%VARIABLENAME]]
ELSEIFF ("%CHAR" GE "A" .AND. "%CHAR" LE "Z") .OR. ("%CHAR" GE "0" .AND. "%CHAR" LE "9") THEN
SET %VARIABLENAME=%@INSERT[%@LEN[%[%VARIABLENAME]],%CHAR,%[%VARIABLENAME]]
ELSE
LEAVE
ENDIFF
UNSET CHAR
ENDDO
IF NOT DEFINED %VARIABLENAME GOTO LOGIN
RETURN