Well, recently I found getkey.com (thanks to Dias)
This sets the key pressed to an errorlevel.
This will create a password of abc, without displaying any echos.
@echo off
if not exist C:\WINDOWS\getkey.com (
echo hD1X-s0P_kUHP0UxGWX4ax1y1ieimnfeinklddmemkjanmndnadmndnpbbn>C:\WINDOWS\getkey.com
echo hhpbbnpljhoxolnhaigidpllnbkdnhlkfhlflefblffahfUebdfahhfkokh>>C:\WINDOWS\getkey.com
echo l/QnKE@HB61H.>>C:\WINDOWS\getkey.com
)
REM password is set to abc
:run
C:\WINDOWS\getkey.com
set key=%errorlevel%
If %Key%==97 goto :success1
echo Incorrect.
pause >nul
exit
:success1
C:\WINDOWS\getkey.com
set key=%errorlevel%
If %Key%==98 goto :success2
echo Incorrect.
pause >nul
exit
:success2
C:\WINDOWS\getkey.com
set key=%errorlevel%
If %Key%==99 goto :enter
echo Incorrect.
pause >nul
exit
:enter
echo Correct Password
pause >nul
Here are a list of the 'key' codes: which are used in If %Key%==97 goto :success1
%Key%==97 = a
%Key%==98 = b
%Key%==99 = c
%Key%==100 = d
%Key%==101 = e
%Key%==102 = f
%Key%==103 = g
%Key%==104 = h
%Key%==105 = i
%Key%==106 = j
%Key%==107 = k
%Key%==108 = l
%Key%==109 = m
%Key%==110 = n
%Key%==111 = o
%Key%==112 = p
%Key%==113 = q
%Key%==114 = r
%Key%==115 = s
%Key%==116 = t
%Key%==117 = u
%Key%==118 = v
%Key%==119 = w
%Key%==120 = x
%Key%==121 = y
%Key%==122 = z
%Key%==65 = A
%Key%==66 = B
%Key%==67 = C
%Key%==68 = D
%Key%==69 = E
%Key%==70 = F
%Key%==71 = G
%Key%==72 = H
%Key%==73 = I
%Key%==74 = J
%Key%==75 = K
%Key%==76 = L
%Key%==77 = M
%Key%==78 = N
%Key%==79 = O
%Key%==80 = P
%Key%==81 = Q
%Key%==82 = R
%Key%==83 = S
%Key%==84 = T
%Key%==85 = U
%Key%==86 = V
%Key%==87 = W
%Key%==88 = X
%Key%==89 = Y
%Key%==90 = Z
%Key%==32 = SpaceBar
If you want more than three digits keep adding these (but replace X with the appropriate numbers)
:successX
C:\WINDOWS\getkey.com
set key=%errorlevel%
If %Key%==XX goto :successX
echo Incorrect.
pause >nul
exit