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

批处理脚本输入C/c/D/d仍提示Invalid Entry问题求助

批处理脚本输入合法选项仍提示无效的问题排查

你的脚本出现这个问题,主要是两个细节错误导致的:

问题1:条件判断的空格不匹配

你写的判断语句是If %Option%== C,等号右边的C前面多了一个空格。用户输入的是纯C/c/D/d,和带空格的 C(注意前面的空格)完全不匹配,所以所有合法输入都会被判定为无效,直接跳转到:incorrect标签。

问题2:缺少分支退出逻辑

就算某个条件判断匹配并执行了start命令,脚本不会停止,会继续执行后面的所有if语句,最后还是会走到:incorrect标签,弹出错误提示。


修复后的完整脚本

@echo OFF 
Echo Bienvenido
Echo.
echo Este batch es para saber si quieres Disk Clean Up o desea hacer un Disk Defragmenter
echo.
pause
cls
echo. 
set C= DiskCleanUp
set D= DiskDeFragmenter
:menu
echo --------------------------------------
echo Escoge C para cleanup o D para Defrag 
echo --------------------------------------
set /p Option= Ingrese C o D:
echo ------------------------- 
:choice
REM 去掉等号右边的空格,并在匹配后跳转到结束部分
If /I "%Option%"=="C" (
    start %windir%\system32\cleanmgr.exe
    goto :end
)
If /I "%Option%"=="D" (
    start %windir%\system32\dfrgui.exe
    goto :end
)

:incorrect
    cls
    echo.
    echo Invalid Entry
    pause
    goto :menu

:end
echo. 
cls
Echo Gracias por usar este batch de Eduardo Figueroa.
echo.
echo Press Enter para cerrar.
echo . 
pause
echo.
Exit

关键修改说明:

  • 用If /I实现不区分大小写的判断,不用写4条重复的判断语句,一条C的判断就能匹配C和c,一条D的判断匹配D和d。
  • 把判断内容用双引号包裹("%Option%"=="C"),避免输入内容带空格时出现语法错误,同时确保匹配的是纯字符,没有多余空格。
  • 每个匹配分支执行start后,用goto :end跳转到脚本结束部分,不会再执行后续代码走到错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:55:32