You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本输入数字2后异常退出问题求助(附代码)

问题分析与修复方案

两个核心问题的原因

1. 输入“2”闪退的原因

你的checkadmin检查模块有漏洞:当检测到不是管理员时,它只打印了提示,但没有暂停让你查看,也没有阻止脚本继续执行后续的创建用户代码。而创建用户需要管理员权限,命令执行失败后,脚本直接继续走流程,加上后续的cls清屏操作,你还没看到提示就被清掉,看起来就像“闪退”。

2. 管理员检查模块失效的原因

同样是checkadmin的问题:它只提示需要管理员,但没有中断脚本流程,非管理员依然能继续执行后续的创建/修改用户命令(只是这些命令会因为权限不足失败,但脚本不会停止)。


具体修复步骤

1. 修复管理员检查模块

把:checkadmin标签的代码改成下面这样,让它真正阻止非管理员操作:

:checkadmin
net session >nul
if %errorlevel% NEQ 0 (
    cls
    echo.
    echo 请右键以管理员身份重新运行这个脚本!
    pause
    exit
)
  • pause:让你能看到提示,不会一闪而过
  • exit:直接退出脚本,不让非管理员继续执行后续操作

2. 统一选项判断的写法(避免潜在错误)

把选项2的判断语句从if "%input%" EQU 2改成和其他选项一致的if %input% EQU 2,统一写法减少奇怪的bug:

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
)

3. 修复选项3的变量名错误

你在选项3里把密码变量写成了passsword(多了一个s),导致修改密码时调用错误的变量,改成正确的password:

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

修复后的完整代码

@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 password="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 请右键以管理员身份重新运行这个脚本!
    pause
    exit
)

内容的提问来源于stack exchange,提问作者user26811984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:32:36