当我输入数字2时,我的批处理文件无法继续[已关闭]

问题描述 投票:0回答:1

我编写了一个要求输入的批处理脚本。每当我输入“2”并按 Enter 键时,脚本就会关闭。我检查了循环,但看起来完全没问题。起初我以为这是某些变量的错误,但事实并非如此。此外,此脚本还会检查管理员权限,但对于权限,它不起作用。我可以成功执行所有命令,而无需将其加载为管理员权限。 顺便说一下,请用一种我能理解的方式解释一下。我今年13岁...

这是我的代码:

@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.
)
batch-file change-password createuser
1个回答
2
投票

请注意,“2”的条件在变量名称周围有引号:

if "%input%" EQU 2 (

比较就变成:

"2"
是否等于
2
。答案是否定的。

使用引号通常是个好主意,但您也必须在另一边加上引号:

if "%input%" EQU "2" (

另请注意,您的脚本以

exit
结尾,这将终止 cmd 解释器。如果您只想终止脚本,则应该使用
goto :EOF
exit /b
之一。

© www.soinside.com 2019 - 2024. All rights reserved.