-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 但我需要*。? 有可能吗,我该怎么做。谢谢你的帮助。:) 我很久没有玩 .bat 文件了,所以我有点迷茫。

4

1 回答 1

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

于 2013-09-24T14:08:49.027 回答