Ir ao conteúdo

Bat Mensagem solicitando senha antes de executar um comando ( ou alguma tarefa ) BAT


Ir à solução Resolvido por evaldo soares,

Posts recomendados

Postado

Olá !

 

Gostaria de um código para quando um usuário fosse executar uma tarefa "X", ou em uma entrada de um menu no arquivo bat, solicitasse senha, porém essa senha precisaria ter a máscara, tipo ao invés de aparecer o que tá sendo digitado, apresentasse caractere ******

 

Um exemplo simples, nesse menu em anexo, a opção 1 é apenas para gestores, e teria que ter uma senha especial para algumas pessoas, não deixando gente não autorizada acessar.

 

:inicio
@echo off
cls
echo. ---------------------------
echo   Menu Principal
echo. ---------------------------
echo  1 - Opcao 1
echo. 2 - Opcao 2
echo. 3 - Opcao 3
echo  4 - Opcao 4
echo  0 - SAIR
echo. ---------------------------
set /p Comando= Digite uma Opcao :
if "%Comando%" equ "1" (goto:op1)
if "%Comando%" equ "2" (goto:op2)
if "%Comando%" equ "3" (goto:op3)
if "%Comando%" equ "4" (goto:op4)
if "%Comando%" equ "0" (goto:exit)
:op1
echo Opcao 1
pause
goto:inicio
:op2
echo Opcao 2
pause
goto:inicio
:op3
echo Opcao 3
pause
goto:inicio
:op4
echo Opcao 4
pause
goto:inicio
:exit
exit

 

Obrigado !

 

Postado

@evaldo soares No caso nesse exemplo tem que digitar a senha "MinhaSenha" para entrar na opção 1:

 

@echo off

for /f %%a in ('"prompt;$H&for %%b in (0) do rem"') do set "BS=%%a"

:Inicio
cls
echo.
echo  Menu Principal
echo.
echo  1 - Opcao 1
echo.
echo. 2 - Opcao 2
echo.
echo. 3 - Opcao 3
echo.
set /p "Opcao=Opcao: "
if /i "%Opcao%"=="1" goto :op1
if /i "%Opcao%"=="2" goto :op2
if /i "%Opcao%"=="3" goto :op3
goto :Inicio
exit

:op1
cls
echo.
echo Para essa opcao e necessario uma senha!
echo.
call :EsconderSenha pwd "Senha: "
if not "%pwd%"=="MinhaSenha" goto :SenhaErrada

cls
echo.
echo Bem vindo a opcao 1
pause
goto :Inicio

:op2
echo.
echo Bem vindo a opcao 2
pause
goto :Inicio

:op3
echo.
echo Bem vindo a opcao 3
pause
goto :Inicio

:SenhaErrada
echo.
echo  A senha digitada esta errada!
pause
goto :Inicio

exit

:EsconderSenha
set "_Senha="
set /p "=%~2" <nul 
:keyLoop
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%"
if defined key (if "%key%"=="%BS%" (if defined _Senha (set "_Senha=%_Senha:~0,-1%" set /p "=!BS! !BS!"<nul)) else (
set "_Senha=%_Senha%%key%" & set /p "=*"<nul) & goto :keyLoop)
echo/
set "%~1=%_Senha%"
goto :eof

 

  • Curtir 1
  • 3 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!