2013-09-24 64 views
-1
cls 
@ECHO OFF 
title Folder posnetki 
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK 
if NOT EXIST posnetki goto MDLOCKER 
:CONFIRM 
echo Are you sure you want to lock the folder(Y/N) 
set/p "cho=>" 
if %cho%==Y goto LOCK 
if %cho%==y goto LOCK 
if %cho%==n goto END 
if %cho%==N goto END 
echo Invalid choice. 
goto CONFIRM 
:LOCK 
ren posnetki "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" 
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" 
echo Folder locked 
goto End 
:UNLOCK 
echo Enter password to unlock folder 
set/p "pass=>" 
if NOT %pass%== pass123 goto FAIL 
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" 
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" posnetki 
echo Folder Unlocked successfully 
goto End 
:FAIL 
echo Invalid password 
goto end 
:MDLOCKER 
md posnetki 
echo posnetki created successfully 
goto End 
:End 

當你寫密碼是,pass123但我需要是*。 ?這是可能的,我怎麼能做到這一點。 thx爲你的幫助。 :)我沒有長時間玩.bat文件,所以我有點失落。.bat鎖文件夾替換密碼*

+0

能否請您添加CMD框的展示更精確你的意思截圖? – Trinimon

回答

1

你也許可以試試這個

::!CARLOS_HIDE_INPUT.BAT 
::Code by Carlos on AMBNT 2013-03-10 
::Subject: Getkey without Display the input. 
::Thread started by jeb 
::Modified to Return password in Arg1 and length in Arg3 by carlsomo 
::Allows unbalance quotes and 'poison' characters mixed with quotes 


:GetPassword.cmd Password="Prompt" length 
@echo off&SetLocal DisableDelayedExpansion 
For /F %%# In ('"Prompt;$H&For %%# in (1) Do Rem"') Do Set "BS=%%#" 
Set "Line=" 
<Nul set/p="%~2" 
:HILoop 
    Set "Key=" 
    For /F "delims=" %%# In (
     'Xcopy /L /W "%~f0" "%~f0" 2^>Nul' 
    ) Do If Not Defined Key Set "Key=%%#" 
    Set "Key=%Key:~-1%" 
    SetLocal EnableDelayedExpansion 
    If Not Defined Key Goto :HIEnd 
    rem If ^"==^%Key% Set "Key=0x22" 
    If %BS%==^%Key% (
     Set /P "=%BS% %BS%" <Nul 
     Set "Key=" 
     If Defined Line set/a length-=1& Set "Line=!Line:~0,-1!" 
    ) Else set/a length+=1&Set /P "=*" <Nul 
    If Not Defined Line (
     EndLocal& Set/a length=1& Set "Line=%Key%" 
    ) Else For /F delims^=^ eol^= %%# In ("!Line!") Do (
     EndLocal& Set/a length=%length%& Set "Line=%%#%Key%" 
    ) 
Goto :HILoop 

:HIEnd 
if not defined Line set/a length=0 
echo(
if not "%~1"=="" (
    For /F delims^=^ eol^= %%# In ("!Line!") Do (
     EndLocal&EndLocal&(If not "%~3"=="" Set "%~3=%length%")& Set "%~1=%%#"&exit/b %length 
    ) 
) Else (
    For /F delims^=^ eol^= %%# In ("!Line!") Do (
     EndLocal&EndLocal&(If not "%~3"=="" set "%~3=%length%")& Set "Pa$$word=%%#"&exit/b %length 
    ) 
    ) 
) 

©Dostips