Пакетный файл для замены ввода * без внешнего файла
Мне нужен командный файл для маскирования ввода с * без внешнего файла, и мне нужен код ((((быстро писать буквы))))) и не рассчитывает расстояние с *
((((если есть код, извлеките внешний файл из пакетного файла, который заставляет внешний файл создавать пароль с помощью * и быстро писать пароль, добавьте комментарий, чтобы увидеть код))))
НАПРИМЕР:
@echo off
set char=*
set /p variable=Enter your password:
set char=%variable%
echo %char%
pause
1 ответ
Это "очистка" кода, который вы получили в своем предыдущем вопросе. Если это не достаточно быстро для вас, то вам следует подумать не делать это в пакетном режиме и использовать какой-то дополнительный инструмент.
@echo off
setlocal enableextensions disabledelayedexpansion
rem Call the subroutine to get the password
call :getPassword password
rem Echo what the function returns
if defined password (
echo You have typed [%password%]
) else (
echo You have typed nothing
)
rem End of the process
endlocal
exit /b
rem Subroutine to get the password
:getPassword returnVar
setlocal enableextensions disabledelayedexpansion
set "_password="
rem We need a backspace to handle character removal
for /f %%a in ('"prompt;$H&for %%b in (0) do rem"') do set "BS=%%a"
rem Prompt the user
set /p "=password ?:" <nul
:keyLoop
rem retrieve a keypress
set "key="
for /f "delims=" %%a in ('xcopy /l /w "%~f0" "%~f0" 2^>nul') do if not defined key set "key=%%a"
set "key=%key:~-1%"
rem handle the keypress
rem if No keypress (enter), then exit
rem if backspace, remove character from password and console
rem else add character to password and go ask for next one
if defined key (
if "%key%"=="%BS%" (
if defined _password (
set "_password=%_password:~0,-1%"
setlocal enabledelayedexpansion & set /p "=!BS! !BS!"<nul & endlocal
)
) else (
set "_password=%_password%%key%"
set /p "=*"<nul
)
goto :keyLoop
)
echo(
rem return password to caller
if defined _password ( set "exitCode=0" ) else ( set "exitCode=1" )
endlocal & set "%~1=%_password%" & exit /b %exitCode%