添加密码掩蔽脚本

添加密码掩蔽脚本

本文介绍了添加密码掩蔽脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有关实践中,我写一个程序中隐藏的文件夹。该计划本身是可以正常使用的,但我想我的面具输入有星号(*)。我发现code的面具输入作为一个独立的剧本,但我不能想出一个办法到code融入我的。任何帮助将大大AP preciated。

程序code

 关闭@echo
颜色5F
通过KBKOZLEV标题文件夹储物柜
:SETPASS
集TIPP =
一套密码=
如果存在的password.txt(
    设置/ p密码= LT;的password.txt
    ATTRIB + H + S的password.txt

如果存在tipp.txt(
    设置/ p TIPP =< tipp.txt
    ATTRIB + H + Stipp.txt

:开始
如果存在锁定转到OPEN
如果存在解锁转到LOCK
如果不存在解锁转到MDLOCKER
:锁
仁解锁,锁定
ATTRIB + H + S锁定
回声。
回声文件夹锁定。
CHOICE / C显示X / t 1 / D X'GT; NUL
出口
:MDLOCKER
MD解锁
回声>的password.txt 1234
回声> tipp.txt 1234
ATTRIB + H + S的password.txt
ATTRIB + H + Stipp.txt
CLS
回声。
呼应成功创建私人文件夹中。
CHOICE / C显示X / t 1 / D X'GT; NUL
转到结束
:打开
颜色2F
CLS
回声。
回声密码TIPP:%TIPP%
回声。
回声输入密码来解锁文件夹或
回声进入新来设置新密码。
回声。
设置通行证=
集/ P通过=密码:
如果/我%合格%==新转到NEWPASS
如果%合格%==%密码%(
    ATTRIB -s -h锁定
    仁锁定解锁
    回声。
    回声文件夹成功解锁。
    转到结束

转到FAIL
:失败
颜色4F
CLS
回声。
回声密码无效,请重试。
CHOICE / C显示X / t 1 / D X'GT; NUL
CLS
转到OPEN
:NEWPASS
颜色8F
CLS
回声。
设置oldpass =
集/ Poldpass =旧密码
如果不是%oldpass%==%密码%转到FAIL
:ENTERNEW
颜色8F
CLS
回声。
设置newpass =
集/ Pnewpass =新密码:
设置newpass =%newpass:=%
如果%newpass%==(
    回声。
    回声无效的新密码,请重新输入新密码。
    CHOICE / C显示X / t 1 / D X'GT; NUL
    转到ENTERNEW

如果存在的password.txtATTRIB -s -h的password.txt
回声>的password.txt%newpass%
回声。
设置passtipp =
集/ Ppasstipp =新TIPP:
集passtipp =%passtipp:=%
如果存在tipp.txtATTRIB -s -htipp.txt
如果不是%passtipp%==(
    回声> tipp.txt%passtipp%
)其他(
    德尔tipp.txt

转到SETPASS
:结束

屏蔽code

  @回响
SETLOCAL ENABLEEXTENSIONS EnableDelayedExpansion设置/ P=输入密码:<讷
致电:PasswordInput
回声(您的输入是:行!转到:EOF:PasswordInput
::作者:卡洛斯·阿奎莱拉Montiers
::最后更新:20150401.创建:20150401。
::设为变量号线输入密码
FOR / F跳过^ = 1 ^ ^ delims = ^ ^停产= %%#(
'回声(| REPLACE.EXE%〜F0/ U / W。')不要将CR = %%#
FOR / F %%#在(
'提示$的H&对于%% _在(_)不要REM')不要将BS = %%#
设置行=
:_PasswordInput_Kbd
设置CHR =&放大器; FOR / F跳过^ = 1 ^ ^ delims = ^ ^停产= %%#(
REPLACE.EXE%〜F0。 / U / W')不要将CHR = %%#
如果!CHR!==!CR!回声(安培;转到:EOF
    如果!CHR!==!BS! (如果定义线(集/ P= BS BS!!!<讷
        设置行=行:!〜0,-1
    )
)否则(设置/ P= *<讷
如果!CHR!==! (set行=!行!^!
    ),否则设置行!= !!线CHR!

转到:_PasswordInput_Kbd


解决方案

下面是合并的脚本。注意,在原的变化:(所有 CLS 按<$ C替换PasswordInput 程序,并在原来的code $ C> REM CLS 仅用于调试):

  @回响
SETLOCAL ENABLEEXTENSIONS DisableDelayedExpansion颜色5F
通过KBKOZLEV标题文件夹储物柜
:SETPASS
集TIPP =
一套密码=
如果存在的password.txt(
    设置/ p密码= LT;的password.txt
    ATTRIB + H + S的password.txt

如果存在tipp.txt(
    设置/ p TIPP =&LT; tipp.txt
    ATTRIB + H + Stipp.txt
):开始
如果存在锁定后藤:OPEN
如果存在解锁转到:LOCK
如果不存在解锁后藤:MDLOCKER:锁
仁解锁,锁定
ATTRIB + H + S锁定
回声(
回声文件夹锁定。
CHOICE / C显示X / t 1 / D X'GT; NUL
转到:END
出口:MDLOCKER
MD解锁
回声&GT;的password.txt 1234
回声&GT; tipp.txt 1234
ATTRIB + H + S的password.txt
ATTRIB + H + Stipp.txt
REM CLS
回声(
呼应成功创建私人文件夹中。
CHOICE / C显示X / t 1 / D X'GT; NUL
转到:END:打开
颜色2F
REM CLS
回声(
回声密码TIPP:%TIPP%
回声(
回声输入密码来解锁文件夹或
回声进入新来设置新密码。
回声(
设置通行证=
REM SET / P通过=密码:
设置/ P=密码:&LT;讷
致电:PasswordInput通如果/我%合格%==新转到:NEWPASS
如果%合格%==%密码%(
    ATTRIB -s -h锁定
    仁锁定解锁
    回声(
    回声文件夹成功解锁。
    转到:END

转到:FAIL:失败
颜色4F
REM CLS
回声(
回声密码无效,请重试。
CHOICE / C显示X / t 1 / D X'GT; NUL
REM CLS
后藤:OPEN:NEWPASS
颜色8F
REM CLS
回声(
设置oldpass =
REM SET / Poldpass =旧密码
设置/ P=旧密码:&LT;讷
电话:PasswordInput oldpass如果不是%oldpass%==%密码%转到:FAIL:ENTERNEW
颜色8F
REM CLS
回声(
设置newpass =
REM SET / Pnewpass =新密码:
设置/ P=新密码:&LT;讷
电话:PasswordInput newpass设置newpass =%newpass:=%
如果%newpass%==(
    回声(
    回声无效的新密码,请重新输入新密码。
    CHOICE / C显示X / t 1 / D X'GT; NUL
    转到:ENTERNEW

如果存在的password.txtATTRIB -s -h的password.txt
回声&GT;的password.txt%newpass%
回声(
设置passtipp =
集/ Ppasstipp =新TIPP:
集passtipp =%passtipp:=%
如果存在tipp.txtATTRIB -s -htipp.txt
如果不是%passtipp%==(
    回声&GT; tipp.txt%passtipp%
)其他(
    德尔tipp.txt

转到:SETPASS:结束
颜色
ENDLOCAL
转到:EOF:PasswordInput
::作者:卡洛斯·阿奎莱拉Montiers
::最后更新:20150401.创建:20150401。
::设为变量号线输入密码
::
::更新20150503:http://stackoverflow.com/users/3439404/josefz?tab=profile
::在接下来的行所做的更改:
:: SETLOCAL EnableDelayedExpansion
::如果!CHR!==!CR!回声(安培; ENDLOCAL&安培;将%1 =%列%&放大器;转到:EOF
::用法:
::电话:PasswordInput VARIABLENAME
::其中,VARIABLENAME输出变量的名称(参考调用)
::
SETLOCAL EnableDelayedExpansion
FOR / F跳过^ = 1 ^ ^ delims = ^ ^停产= %%#(
'回声(| REPLACE.EXE%〜F0/ U / W。')不要将CR = %%#
FOR / F %%#在(
'提示$的H&amp;对于%% _在(_)不要REM')不要将BS = %%#
设置行=
:_PasswordInput_Kbd
设置CHR =&放大器; FOR / F跳过^ = 1 ^ ^ delims = ^ ^停产= %%#(
    REPLACE.EXE%〜F0。 / U / W')不要将CHR = %%#
如果!CHR!==!CR!回声(安培; ENDLOCAL&安培;将%1 =%列%&放大器;转到:EOF
    如果!CHR!==!BS! (如果定义线(集/ P= BS BS!!!&LT;讷
        设置行=行:!〜0,-1
    )
)否则(设置/ P= *&LT;讷
如果!CHR!==! (set行=!行!^!
    ),否则设置行!= !!线CHR!

转到:_PasswordInput_Kbd

For practice, I am writing a program to hide a folder. The program itself is working perfectly, but I want to mask my input with asterisks (*). I have found code that masks input as a standalone script, but I can't figure out a way to integrate the code into mine. Any help would be greatly appreciated.

program code

@echo off
color 5F
title Folder Locker by KBKOZLEV
:SETPASS
set "tipp="
set "password="
if exist "password.txt" (
    set /p password=<password.txt
    attrib +h +s "password.txt"
)
if exist "tipp.txt" (
    set /p tipp=<tipp.txt
    attrib +h +s "tipp.txt"
)
:START
if exist "Locked" goto OPEN
if exist "Unlocked" goto LOCK
if not exist "Unlocked" goto MDLOCKER
:LOCK
ren "Unlocked" "Locked"
attrib +h +s "Locked"
echo.
echo Folder locked.
CHOICE /C X /T 1 /D X > nul
exit
:MDLOCKER
md "Unlocked"
echo>password.txt 1234
echo>tipp.txt 1234
attrib +h +s "password.txt"
attrib +h +s "tipp.txt"
cls
echo.
echo Private folder created successfully.
CHOICE /C X /T 1 /D X > nul
goto END
:OPEN
color 2F
cls
echo.
echo Password tipp: %tipp%
echo.
echo Enter password to unlock folder or
echo enter "new" to set a new password.
echo.
set "pass="
set /p "pass=Password: "
if /i "%pass%"=="new" goto NEWPASS
if "%pass%"=="%password%" (
    attrib -h -s "Locked"
    ren "Locked" "Unlocked"
    echo.
    echo Folder unlocked successfully.
    goto END
)
goto FAIL
:FAIL
color 4F
cls
echo.
echo Invalid password, please try again.
CHOICE /C X /T 1 /D X > nul
cls
goto OPEN
:NEWPASS
color 8F
cls
echo.
set "oldpass="
set /p "oldpass=Old password: "
if not "%oldpass%"=="%password%" goto FAIL
:ENTERNEW
color 8F
cls
echo.
set "newpass=""
set /p "newpass=New password: "
set newpass=%newpass:"=%
if "%newpass%"=="" (
    echo.
    echo Invalid new password, please enter new password again.
    CHOICE /C X /T 1 /D X > nul
    goto ENTERNEW
)
if exist "password.txt" attrib -h -s "password.txt"
echo>password.txt %newpass%
echo.
set "passtipp=""
set /p "passtipp=New tipp: "
set passtipp=%passtipp:"=%
if exist "tipp.txt" attrib -h -s "tipp.txt"
if not "%passtipp%"=="" (
    echo>tipp.txt %passtipp%
) else (
    del "tipp.txt"
)
goto SETPASS
:END

masking code

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set /P "=Enter a Password:" < Nul
Call :PasswordInput
Echo(Your input was:!Line!

Goto :Eof

:PasswordInput
::Author: Carlos Montiers Aguilera
::Last updated: 20150401. Created: 20150401.
::Set in variable Line a input password
For /F skip^=1^ delims^=^ eol^= %%# in (
'"Echo(|Replace.exe "%~f0" . /U /W"') Do Set "CR=%%#"
For /F %%# In (
'"Prompt $H &For %%_ In (_) Do Rem"') Do Set "BS=%%#"
Set "Line="
:_PasswordInput_Kbd
Set "CHR=" & For /F skip^=1^ delims^=^ eol^= %%# in (
'Replace.exe "%~f0" . /U /W') Do Set "CHR=%%#"
If !CHR!==!CR! Echo(&Goto :Eof
    If !CHR!==!BS! (If Defined Line (Set /P "=!BS! !BS!" <Nul
        Set "Line=!Line:~0,-1!"
    )
) Else (Set /P "=*" <Nul
If !CHR!==! (Set "Line=!Line!^!"
    ) Else Set "Line=!Line!!CHR!"
)
Goto :_PasswordInput_Kbd
解决方案

Here is the merged script. Note changes in original :PasswordInput procedure (and in your original code, all cls replaced by rem cls merely for debugging purposes):

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion

color 5F
title Folder Locker by KBKOZLEV
:SETPASS
set "tipp="
set "password="
if exist "password.txt" (
    set /p password=<password.txt
    attrib +h +s "password.txt"
)
if exist "tipp.txt" (
    set /p tipp=<tipp.txt
    attrib +h +s "tipp.txt"
)

:START
if exist "Locked" goto :OPEN
if exist "Unlocked" goto :LOCK
if not exist "Unlocked" goto :MDLOCKER

:LOCK
ren "Unlocked" "Locked"
attrib +h +s "Locked"
echo(
echo Folder locked.
CHOICE /C X /T 1 /D X > nul
goto :END
exit

:MDLOCKER
md "Unlocked"
echo>password.txt 1234
echo>tipp.txt 1234
attrib +h +s "password.txt"
attrib +h +s "tipp.txt"
rem cls
echo(
echo Private folder created successfully.
CHOICE /C X /T 1 /D X > nul
goto :END

:OPEN
color 2F
rem cls
echo(
echo Password tipp: %tipp%
echo(
echo Enter password to unlock folder or
echo enter "new" to set a new password.
echo(
set "pass="
rem set /p "pass=Password: "
Set /P "=Password:" < Nul
Call :PasswordInput pass

if /i "%pass%"=="new" goto :NEWPASS
if "%pass%"=="%password%" (
    attrib -h -s "Locked"
    ren "Locked" "Unlocked"
    echo(
    echo Folder unlocked successfully.
    goto :END
)
goto :FAIL

:FAIL
color 4F
rem cls
echo(
echo Invalid password, please try again.
CHOICE /C X /T 1 /D X > nul
rem cls
goto :OPEN

:NEWPASS
color 8F
rem cls
echo(
set "oldpass="
rem set /p "oldpass=Old password: "
Set /P "=Old Password:" < Nul
Call :PasswordInput oldpass

if not "%oldpass%"=="%password%" goto :FAIL

:ENTERNEW
color 8F
rem cls
echo(
set "newpass=""
rem set /p "newpass=New password: "
Set /P "=New Password:" < Nul
Call :PasswordInput newpass

set newpass=%newpass:"=%
if "%newpass%"=="" (
    echo(
    echo Invalid new password, please enter new password again.
    CHOICE /C X /T 1 /D X > nul
    goto :ENTERNEW
)
if exist "password.txt" attrib -h -s "password.txt"
echo>password.txt %newpass%
echo(
set "passtipp=""
set /p "passtipp=New tipp: "
set passtipp=%passtipp:"=%
if exist "tipp.txt" attrib -h -s "tipp.txt"
if not "%passtipp%"=="" (
    echo>tipp.txt %passtipp%
) else (
    del "tipp.txt"
)
goto :SETPASS

:END
color
EndLocal
Goto :Eof

:PasswordInput
::Author: Carlos Montiers Aguilera
::Last updated: 20150401. Created: 20150401.
::Set in variable Line a input password
::
::Update 20150503: http://stackoverflow.com/users/3439404/josefz?tab=profile
::Changes made in next lines:
::    SetLocal EnableDelayedExpansion
::    If !CHR!==!CR! Echo(&EndLocal&set "%1=%Line%"&Goto :Eof
::Usage:
::    Call :PasswordInput variableName
::where variableName is a name of output variable (by reference call)
::
SetLocal EnableDelayedExpansion
For /F skip^=1^ delims^=^ eol^= %%# in (
'"Echo(|Replace.exe "%~f0" . /U /W"') Do Set "CR=%%#"
For /F %%# In (
'"Prompt $H &For %%_ In (_) Do Rem"') Do Set "BS=%%#"
Set "Line="
:_PasswordInput_Kbd
Set "CHR=" & For /F skip^=1^ delims^=^ eol^= %%# in (
    'Replace.exe "%~f0" . /U /W') Do Set "CHR=%%#"
If !CHR!==!CR! Echo(&EndLocal&set "%1=%Line%"&Goto :Eof
    If !CHR!==!BS! (If Defined Line (Set /P "=!BS! !BS!" <Nul
        Set "Line=!Line:~0,-1!"
    )
) Else (Set /P "=*" <Nul
If !CHR!==! (Set "Line=!Line!^!"
    ) Else Set "Line=!Line!!CHR!"
)
Goto :_PasswordInput_Kbd

这篇关于添加密码掩蔽脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-07 08:57