Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 向脚本添加密码屏蔽_Batch File - Fatal编程技术网

Batch file 向脚本添加密码屏蔽

Batch file 向脚本添加密码屏蔽,batch-file,Batch File,为了练习,我正在编写一个隐藏文件夹的程序。程序本身工作正常,但我想用星号(*)屏蔽输入。我已经找到了将输入屏蔽为独立脚本的代码,但我无法找到将代码集成到我的脚本中的方法。任何帮助都将不胜感激 程序代码 @echo关闭 彩色5F KBKOZLEV的标题文件夹锁 :SETPASS 设置“tipp=” 设置“密码=” 如果存在“password.txt”( set/p password=password.txt 1234 echo>tipp.txt 1234 attrib+h+s“password.t

为了练习,我正在编写一个隐藏文件夹的程序。程序本身工作正常,但我想用星号(*)屏蔽输入。我已经找到了将输入屏蔽为独立脚本的代码,但我无法找到将代码集成到我的脚本中的方法。任何帮助都将不胜感激

程序代码
@echo关闭
彩色5F
KBKOZLEV的标题文件夹锁
:SETPASS
设置“tipp=”
设置“密码=”
如果存在“password.txt”(
set/p password=password.txt 1234
echo>tipp.txt 1234
attrib+h+s“password.txt”
attrib+h+s“tipp.txt”
cls
回声。
已成功创建回显专用文件夹。
选项/C X/T 1/D X>nul
转到终点
:打开
颜色2F
cls
回声。
回显密码tipp:%tipp%
回声。
echo输入密码以解锁文件夹或
echo输入“new”以设置新密码。
回声。
设置“通过=”
设置/p“通过=密码:”
如果/i“%pass%”==“new”转到NEWPASS
如果“%pass%”==“password%”(
属性-h-s“锁定”
“已锁定”“已解锁”
回声。
echo文件夹已成功解锁。
转到终点
)
失败
:失败
彩色4F
cls
回声。
回显无效密码,请重试。
选项/C X/T 1/D X>nul
cls
去开门
:新通行证
颜色8F
cls
回声。
设置“oldpass=”
设置/p“旧密码=旧密码:”
如果不是“%oldpass%”,则=“%password%”转到失败
:输入新
颜色8F
cls
回声。
设置“newpass=”“
设置/p“newpass=新密码:”
设置newpass=%newpass:=%
如果“%newpass%”=(
回声。
回显无效的新密码,请重新输入新密码。
选项/C X/T 1/D X>nul
转到新的
)
如果存在“password.txt”attrib-h-s“password.txt”
echo>password.txt%newpass%
回声。
设置“passtipp=”
设置/p“通行证=新通行证:”
设置passtipp=%passtipp:=%
如果存在“tipp.txt”attrib-h-s“tipp.txt”
如果不是“%passtipp%”,则(
echo>tipp.txt%passtipp%
)否则(
del“tipp.txt”
)
后藤塞通
:结束
屏蔽码
@Echo关闭
SetLocal EnableExtensions EnableDelayedExpansion
设置/P“=输入密码:”If!CHR!==!BS!(If Defined Line(Set/P“=!BS!!BS!”

我制作了一个小的hybride[Batch/VBS/HTA]来屏蔽用户键入的密码;所以从这段代码中获得灵感,并尝试在主项目中插入它;)

@echo关闭
标题Générer un HTABOX pour cacher un mot de passe en ligne de commande版权所有Hackoo 2014
模式con cols=90线=3和颜色9B
设置MyVBSFile=%tmp%\%~n0.vbs
设置MyHTAFile=%tmp%\%~n0.hta
刘易斯:我们需要一个非常好的例子
调用:CreateMyVBS
::Lancer Le VBS
Cscript.exe//NOLOGO%MyVBSFile%
:Langer-Le HTA CR
启动/等待mshta.exe“%MyHTAFile%”
删除“%MyVBSFile%”和删除“%MyHTAFile%”
::Lire le contenu du fichier%tmp%\userIn pour extraire le mot de passe and tapédepuis
::le HTABOX和le définir公共变量
对于(%tmp%\userIn)中的/f%%i,请设置“Mypassword=%%i”
echo Votre mot de passe saisi est:%MyPassword%
删除%tmp%\userIn
暂停
退出/b
:#开始
莫特·德·帕斯©哈库
'---------------------------------------------------------------------------------------
子窗口加载
中心窗口300150
调用密码形式()
调用TextFocus()
端接头
'---------------------------------------------------------------------------------------
副中心窗口(x,y)
伊托普
window.resizeTo x,y
iLeft=window.screen.availWidth/2-x/2
itop=window.screen.availHeight/2-y/2
window.moveTo ileft,itop
端接头
'----------------------------------------------------------------------------------------
子存储密码()
设置fs=CreateObject(“Scripting.FileSystemObject”)
strFile=fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2),“UserIn”))
设置ts=fs.OpenTextFile(strFile,2,True)
如果PasswordArea.value为“”,则
ts.WriteLine PasswordArea.value
关闭
自我关闭“向用户发送一封电子邮件,以确保用户在使用过程中不发生任何变化
其他的
Msgbox“Le mot de passe est vide!”&Vbcrlf和“SVP entrez de nouveau votre mot de passe”,vb感叹词,“mot de passe©Hackoo”
位置:重新装填(正确)'Pour recorderánouveau ce HTA
如果结束
端接头
'----------------------------------------------------------------------------------------
子密码形式()
Self.document.title=“Mot de Passe©Hackoo”
Self.document.bgColor=“浅蓝色”
ONSCR.InnerHTML=“Taper votre mot de passe这是合并的脚本。请注意原始
:PasswordInput
过程中的更改(在原始代码中,所有
cls
rem cls
替换,仅用于调试目的):

@Echo关闭
SetLocal EnableExtensions DisableDelayedExpansion
彩色5F
KBKOZLEV的标题文件夹锁
:SETPASS
设置“tipp=”
设置“密码=”
如果存在“password.txt”(
set/p password=password.txt 1234
echo>tipp.txt 1234
attrib+h+s“password.txt”
attrib+h+s“tipp.txt”
rem cls
回音(
已成功创建回显专用文件夹。
选项/C X/T 1/D X>nul
后藤:结束
:打开
颜色2F
rem cls
回音(
回显密码tipp:%tipp%
回音(
echo输入密码以解锁文件夹或
echo输入“new”以设置新密码。
回音(
设置“通过=”
rem set/p“pass=密码:”
设置/P“=密码:@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
@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
@echo off
Title Générer un HTABOX pour cacher un mot de passe en ligne de commande Copyright Hackoo 2014
mode con cols=90 lines=3 & color 9B
Set MyVBSFile=%tmp%\%~n0.vbs
Set MyHTAFile=%tmp%\%~n0.hta
:: Créer le VBS Pour extraire et générer le code du HTA
Call :CreateMyVBS
:: Lancer Le VBS
Cscript.exe //NOLOGO %MyVBSFile%
:: Lancer Le HTA crée par le VBS
start /wait mshta.exe "%MyHTAFile%"
Del "%MyVBSFile%" & Del "%MyHTAFile%"
:: Lire le contenu du fichier %tmp%\userIn pour extraire le mot de passe et tapé depuis
:: le HTABOX et le définir comme une variable
for /f %%i in (%tmp%\userIn) do set "Mypassword=%%i"
echo Votre mot de passe saisi est : %MyPassword%
Del %tmp%\userIn
pause
Exit /b
:#Start
<html>
<head>
<title>Mot de Passe © Hackoo</title>
<hta:application id="htaid"
applicationName="Password"
border="thin"
icon="wlrmdr.exe"
borderStyle="normal"
caption="yes"
contextMenu="no"
maximizeButton="no"
minimizeButton="yes"
navigable="yes"
showInTaskbar="yes"
singleInstance="yes"
sysmenu="yes"
SCROLL="NO"
SHOWINTASKBAR="Yes"  
SELECTION="no"
MINIMIZEBUTTON="no"
>
</head>
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
<BODY TOPMARGIN="1" LEFTMARGIN="1"><CENTER><DIV><SPAN ID="ONSCR"></SPAN></DIV></CENTER></BODY>
<script language="vbscript">
'---------------------------------------------------------------------------------------
Sub Window_OnLoad
    CenterWindow 300,150
    Call PasswordForm()
    Call TextFocus()
end sub
'---------------------------------------------------------------------------------------
Sub CenterWindow(x,y)
    Dim iLeft,itop
    window.resizeTo x,y
    iLeft = window.screen.availWidth/2 - x/2
    itop = window.screen.availHeight/2 - y/2
    window.moveTo ileft,itop
End Sub
'----------------------------------------------------------------------------------------
Sub SavePassword()
    set fs=CreateObject("Scripting.FileSystemObject")
    strFile=fs.GetAbsolutePathName(fs.BuildPath(fs.GetSpecialFolder(2),"UserIn"))
    set ts=fs.OpenTextFile(strFile,2,True)
    If PasswordArea.value <> "" Then
        ts.WriteLine PasswordArea.value
        ts.Close
        self.Close 'Pour fermer ce HTA après avoir enregistré le mot de passe comme une variable dans le fichier Userin
    else
        Msgbox "Le mot de passe est vide ! "& Vbcrlf & "SVP entrez de nouveau votre mot de passe",VbExclamation,"Mot de Passe © Hackoo"
        Location.reload(true) 'Pour recharger à nouveau ce HTA
    end if
End Sub
'----------------------------------------------------------------------------------------
Sub PasswordForm()
    Self.document.title = "Mot de Passe © Hackoo"
    Self.document.bgColor = "lightblue"
    ONSCR.InnerHTML="<center><FONT COLOR=""#FFFFFF"" SIZE=""+1"" FACE=""VERDANA,ARIAL,HELVETICA,SANS-SERIF"">Taper votre mot de passe</FONT<br>"_
    &"<input type=""password"" name=""PasswordArea"" size=""20"" onKeyUp=""TextFocus""><br><br><input type=""Submit"" STYLE=""HEIGHT:25;WIDTH:110"" value=""OK"" onClick=""SavePassword"">"
END Sub
'----------------------------------------------------------------------------------------
Sub TextFocus
    PasswordArea.Focus
End Sub
'----------------------------------------------------------------------------------------
</script>
</body>
</html>
:#End
::***********************************************************************************************
:CreateMyVBS
::'**********************************************************************************************
(
echo. Set fso = CreateObject^("Scripting.FileSystemObject"^)
echo. Set f=fso.opentextfile^("%~f0",1^)
echo. a=f.readall
echo. Set r=new regexp
echo. r.pattern = "(?:^|(?:\r\n))(?::#Start\r\n)([\s\S]*?)(?:\r\n)(?::#End)"
echo. Set Matches = r.Execute^(a^)
echo. If Matches.Count ^> 0 Then Data = Matches^(0^).SubMatches^(0^)
echo. WriteFileText "%MyHTAFile%",Data
echo. f.close
::'**********************************************************************************************
echo.
echo. Function WriteFileText^(sFile,Data^)
echo.     Dim objFSO,oTS,sText
echo.     Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
echo.     Set oTS = objFSO.CreateTextFile^(sFile,2^)
echo.     oTS.WriteLine Data
echo.     oTS.close
echo.     set oTS = nothing
echo.     Set objFSO = nothing
echo. End Function
) > %MyVBSFile%
::'***********************************************************************************************
@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