我编写了一个要求输入的批处理脚本。每当我输入“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.
)
请注意,“2”的条件在变量名称周围有引号:
if "%input%" EQU 2 (
比较就变成:
"2"
是否等于2
。答案是否定的。
使用引号通常是个好主意,但您也必须在另一边加上引号:
if "%input%" EQU "2" (
另请注意,您的脚本以
exit
结尾,这将终止 cmd 解释器。如果您只想终止脚本,则应该使用 goto :EOF
或 exit /b
之一。