Почему пользователь может установить новый пароль без необходимости вводить старый пароль правильно с моим кодом пакета?

Я недавно написал программу блокировки папок.

Моя единственная проблема в том, что когда мне нужно сменить пароль, например, Я иду в разделnewpassПрограмма, похоже, не сравнивает старый пароль с новым, а просто использует любой ввод данных, который отрицает цель иметь пароль, потому что каждый может просто изменить его, а затем разблокировать папку с ним.

Может кто-нибудь перепроверить мой код и сказать мне, почему он это делает.

@echo off 
title Folder Locker by KBKOZLEV
:SETPASS
set/p password= <password.txt
set/p tipp= <tipp.txt
attrib +h +s "password.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( 1234 > password.txt
)
echo( 1234 > tipp.txt
)
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
cls
echo.
echo Password Tip:%tipp%
echo.
echo Enter password to unlock folder or
echo Enter "new" to set a new password. 
set/p pass=">" 
if %pass%==new goto newpass
if %pass%==%password% ( 
attrib  -h -s "Locked" 
ren Locked "Unlocked"
echo Folder unlocked successfully 
goto End 
)
goto FAIL
:FAIL
cls
echo.
echo Invalid password,please try again. 
CHOICE /C X /T 1 /D X > nul 
cls
goto OPEN
:NEWPASS
cls
echo.
echo Enter old password.
set/p oldpass=">"
if %oldpass%==%password% {
attrib -h -s "password.txt"
attrib -h -s "tipp.txt"
cls 
echo.
echo Enter new password. 
set/p newpass= ">"
echo( %newpass% > password.txt
)
pause
cls
echo.
echo Enter new tipp
set/p passtipp=">"
echo( %passtipp% > tipp.txt
)
goto setpass
}
goto fail
:END

Ответы на вопрос(1)

Ваш ответ на вопрос