<неожиданно без причины - PullRequest
       3

<неожиданно без причины

0 голосов
/ 28 апреля 2020
:deleteaccount
cls
echo what account do you want to delete?
set /p dan=
if not exist %~dp0\database\%dan%\ (
    echo this account doesn't exist & pause >nul & goto stage
    )
else %~dp0\database\%dan%\ (
    cls & echo password:
    set /p dap=
    call %~dp0\database\%dan%\%dan%.bat
    if %dap% == %rpassword1% (
        echo are you sure you want to delete this account? yes/no
        set /p daq=
        if %daq% == yes (
            @RD /S /Q %~dp0\database\%daq%\
            echo account succesfully deleted
            pause >nul & goto stage)
        if %daq% == no (goto stage)
    )
)

После того, как я ввел правильный пароль для учетной записи, которую я хотел удалить, он почему-то говорит < is unexpected.

1 Ответ

0 голосов
/ 28 апреля 2020

В целях экономии экранного пространства, вот пример вашего скрипта, модифицированного для использования правильного синтаксиса и включения логической структуры.

@Echo Off

:DeleteAccount
ClS
Set "dan=:"
Set /P "dan=Which account do you want to remove? "
If Not Exist "%~dp0database\%dan%\" (
    Echo The account does not exist.
    "%__AppDir__%timeout.exe" /T 3 /NoBreak 1> NUL
    GoTo Stage
)
ClS
If Not Exist "%~dp0database\%dan%\%dan%.bat" (
    Echo The required batch file is missing for the account.
    "%__AppDir__%timeout.exe" /T 3 /NoBreak 1> NUL
    GoTo Stage
)
Set "dap="
Set /P "dap=Please enter your password: "
Call "%~dp0database\%dan%\%dan%.bat" 2> NUL
If ErrorLevel 1 (
    Echo A error occurred running the batch file.
    "%__AppDir__%timeout.exe" /T 3 /NoBreak 1> NUL
    GoTo Stage
)
If "%dap%." == "%rpassword1%." (
    "%__AppDir__%choice.exe" /M "Are you sure you want to remove this account"
    If Not ErrorLevel 2 (
        RD /S /Q "%~dp0database\%daq%" 2> NUL
        If ErrorLevel 1 (
            Echo An error occurred deleting the account.
        ) Else Echo Account successfully removed.
        "%__AppDir__%timeout.exe" /T 3 /NoBreak 1> NUL
    )
) Else (
    Echo Incorrect password.
    "%__AppDir__%timeout.exe" /T 3 /NoBreak 1> NUL
)

:Stage
Rem Rest of code goes here.

Пожалуйста, прочтите и просмотрите его, обращая особое внимание из включенных двойных кавычек, которые используются для включения и защиты специальных символов в строках. Первые две и две последние строки были включены, чтобы сохранить этот пример независимым (поскольку они были опущены в опубликованном фрагменте).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...