Скрипт моего пакетного файла закрывается, когда я набираю «2» и нажимаю Enter

Скрипт закрывается всякий раз, когда я набираю «2» и нажимаю Enter. Я проверил шлейф, но он выглядит нормально. Сначала я подумал, что это ошибка некоторых переменных, но это не так. Также этот скрипт проверяет права администратора, но не работает. Я мог успешно выполнять все команды, не загружая их с правами администратора. Это мой код, кстати.

@echo off
chcp 65001 >nul
color 0A
title Slimy's Account Hacking Tool
set /p pass = "Enter password: "
cls
if "%pass%" NEQ "slimy" exit
:menu
echo.
echo  ***************
echo       Menu
echo  ***************
echo.
echo.
echo 1) List Users on Computer
echo 2) Create a New User
echo 3) Change a User's Password
echo 4) Delete a User Account
echo 5) Exit Slimy's Account Hacking Tool
echo.
set /p input = "©️ "

if %input% EQU 1 (
    title List Users
    cls
    net user
    pause
    cls
    goto menu
)

if "%input%" EQU 2 (
    call checkadmin
    title Create a New User
    cls
    set /p user = "USERNAME: "
    set /p password = "PASSWORD: "
    net user %user% %password% /add
    echo New user created with credentials:
    echo %user% : %password%
    pause
    cls
    goto menu
)

if %input% EQU 3 (
    call checkadmin
    title Change a USer's Password
    cls
    set /p username = "TARGET USER: "
    set /p passsword = "NEW PASSWORD: "
    net user %username% %password%
    pause
    cls
    goto menu
)

if %input% EQU 4 (
    cls
    echo you have no morals and are messed up for trying to do this.
    timeout /t 3
    cls
    goto menu
)

if %input% EQU 5 Exit

:checkadmin
net session >nul
if %errorlevel% NEQ 0 (
    cls
    echo.
    echo Restart the script and run it as admin.
)

Я пытался переписать весь код, но это не помогло. Пожалуйста, помогите. Я был бы признателен!

Как вы ожидаете от нас помощи, не показывая командный файл? Думаешь, у нас есть хрустальный шар?

John Gordon 14.08.2024 03:20

@JohnGordon У тебя не добрый язык. Новые пользователи как маленькие дети. Мы должны быть чрезвычайно терпеливы к их оплошностям. ОП, спасибо за предоставленный источник.

Dúthomhas 14.08.2024 04:12
call checkadmin пытается вызвать внешний скрипт. Чтобы вызвать метку в том же скрипте, вам НУЖНО двоеточие: call :checkadmin (кроме GOTO, для которого не важно, есть двоеточие или нет)
Stephan 14.08.2024 09:10

Помимо приведенных выше советов, я вижу еще одну проблему с отправленным вами кодом. Вы одновременно создаете переменные и пытаетесь использовать их в блоке кода в скобках. По этой причине ввод 2 или 3 не приведет к достижению намеченных команд net.exe без изменения структуры или включения отложенного расширения переменной.

Compo 14.08.2024 12:13
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обратите внимание, что ваше условие для «2» заключено в кавычки вокруг имени переменной:

if "%input%" EQU 2 (

Тогда сравнение становится таким: равен ли "2"2. Ответ — нет.

Использование кавычек часто является хорошей идеей, но вы также должны заключать кавычки с другой стороны:

if "%input%" EQU "2" (

Также обратите внимание, что ваш скрипт заканчивается символом exit, который завершает работу интерпретатора cmd. Если вы хотите только завершить свой скрипт, вместо этого вам следует использовать один из goto :EOF или exit /b.

Другие вопросы по теме