微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用批处理文件屏蔽密码

如何解决使用批处理文件屏蔽密码

在当前情况下,运行批处理文件时,窗口提示输入密码;输入密码时,在窗口提示中可见字符。 我想屏蔽密码。

到目前为止,要输入密码,我的批处理文件中包含以下代码

SET /p v_password=Enter user password:

我应该在此处嵌入什么代码屏蔽密码。

解决方法

隐藏密码;您可以使用此question

中此处发布的powershell方法
@echo off
set "psCommand=powershell -C "$pword = read-host 'Enter Password' -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
echo %password%
pause

下面是一个示例,向您展示如何将powershell命令用于批处理文件:

@echo off
Title %~n0
Mode 50,5 & Color 0E
:CreatePassword
cls & Color 0E
setlocal DisableDelayedExpansion
Call :InputPassword "Please choose your password" pass1
Call :InputPassword "Please confirm your password" pass2
setlocal EnableDelayedExpansion
If !pass1!==!pass2! ( Goto:Good ) Else ( Goto:Bad )
::***********************************
:InputPassword
Cls
echo(
set "psCommand=powershell -Command "$pword = read-host '%1' -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
      [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
        for /f "usebackq delims=" %%p in (`%psCommand%`) do set %2=%%p
Goto :eof
::***********************************        
:Good
Color 0B                  
Cls
echo.
echo                     Good password
::TimeOut /T 2 /NoBreak>nul
echo Your password stored as : "!Pass2!" without quotes
pause>nul
Goto :Eof
::***********************************
:Bad
Color 0C
Cls
echo.
echo             Wrong password try again
::TimeOut /T 2 /NoBreak>nul
echo  Press any key to retry again
pause>nul
Goto :CreatePassword
::***********************************

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。