0

このバッチファイルでは、ユーザーが希望のパスワードを入力して、バッチファイルを開いたり閉じたりするたびに使用できるプログラムを作成しようとしています。問題は、(:MDLOCKER と :UNLOCK で) ユーザー パスワードを取得できず、スクリプトのロック解除部分が機能しないことです。最終的にそれが機能するようになったとき
、あなたが助けてくれればどんなパスワードも受け入れます。

enter code here@ECHO OFF
prompt Filelocker`enter code here`
:START
echo what do you want to do?  (insert number)
echo 1 Lock current folder
echo 2 Unlock current folder
echo 3 Make new locked folder

set/p "cho=>"
if %cho%==1 goto CONFIRM
if %cho%==2 goto UNLOCK
if %cho%==3 goto NEW
echo not valid
goto start

: NEW
title Folder Locked files
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto ALREADY
if NOT EXIST Locker goto MDLOCKER

:ALREADY
echo folder already exist!
echo try unlocking if folder can not be found
pause
goto START



:CONFIRM
echo Are you sure u 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 Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto end

:MDLOCKER
md Locker
echo Locked folder created....
echo folder is now created 
echo enter password for your file.
set/p 1%=
echo password accepted 
goto start




:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==%1% goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End


:FAIL
echo Invalid password
echo 2 MORE TRYS LEFT
pause
goto 


:End
4

2 に答える 2

0

位置パラメータを変更できるとは思いません%1... %9代わりに、パスワードを変数に保存してみてください。

于 2012-11-25T01:13:28.893 に答える
0

問題はここにあります:

set/p 1%=

どうしてそんなことをするのか?

var-nameのような特別なvarを使用することはできません。また、var-nameの先頭に数字を使用することはできません。

使用しているすべてのIFステートメントの代わりにコマンドChoiceを使用できます。

@ECHO OFF
prompt Filelocker`enter code here`
:START
echo what do you want to do?  (insert number)
echo 1 Lock current folder
echo 2 Unlock current folder
echo 3 Make new locked folder

choice /C 123 /M "choose an option: "
IF %ERRORLEVEL% EQU 1 (goto :CONFIRM)
IF %ERRORLEVEL% EQU 2 (goto :UNLOCK)
IF %ERRORLEVEL% EQU 3 (goto :NEW)

:NEW
title Folder Locked files
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" (
    echo folder already exist!
    echo try unlocking if folder can not be found
    pause
    goto :START
)
if NOT EXIST "Locker" (goto :MDLOCKER)

:CONFIRM
choice /C YN /M "Are you sure u want to Lock the folder? "
IF %ERRORLEVEL% EQU 1 (goto :LOCK)
IF %ERRORLEVEL% EQU 2 (goto :END)

:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto :end

:MDLOCKER
md "Locker"
echo Locked folder created....
echo folder is now created 
echo enter password for your file.
set/p "VAR=>> "
echo password accepted 
goto :start

:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>> "
if NOT "%pass%"=="%VAR%" goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End

:FAIL
echo Invalid password
echo 2 MORE TRYS LEFT
pause
goto :UNLOCK

:End
于 2012-11-25T11:30:38.463 に答える