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

VS Code环境下模拟OS的批处理脚本报错“goto was unexpected at this time”的修复方案

修复批处理脚本的“goto was unexpected at this time”错误

这问题我太熟悉了,核心是两个小细节没处理好,咱们一步步搞定:

1. 变量名后的多余空格导致变量未正确定义

你写的set /p input1 = Password:里,input1后面多了个空格!批处理对变量名的空格非常敏感,这会让实际定义的变量名变成input1 (带空格的),而不是你预期的input1。当执行if %input1% == 12345678 goto menu时,%input1%其实是未定义的空值,展开后就变成了if == 12345678 goto menu,这明显违反批处理语法,直接触发了错误。

修复方法:删掉set /p语句里变量名后面的空格,改成:

set /p input1=Password:

顺带提一句,你菜单里的set /p input2=/没加多余空格,这点是对的,保持原样就行。

2. 未处理空输入的情况

就算修复了空格,如果用户直接回车不输入密码,input1变量会是空值,这时候if %input1% == 12345678展开后还是if == 12345678,照样会报错。咱们可以给判断的两边都加上双引号,这样空输入时会变成if "" == "12345678",语法就完全合法了。

修改后的判断语句:

if "%input1%" == "12345678" goto menu

同理,菜单里的多个if %input2% == X也应该改成带引号的形式,避免用户输入空值或者特殊字符时出错:

if "%input2%" == "1" goto notepad
if "%input2%" == "2" goto movies
...

完整修复后的代码

@echo off
:boot
echo.
echo :!!. Time: %time%
echo :!7^. Date: %date%
echo .. :!7^
echo Y??Y :?YJJ?:
echo J77? ^JGGPPG!
echo ^YGBGGG5!
echo ~YGGGGGY~
echo .!5GGGBGJ^
echo ?BBGBGJ^
echo .~Y5?:
echo --------------------------------------------------------------------------------------------
echo Welcome %username% !
set /p input1=Password:
if "%input1%" == "12345678" goto menu
goto boot
:menu
cls
echo.
echo :!!. Time: %time%
echo :!7^. Date: %date%
echo .. :!7^
echo Y??Y :?YJJ?:
echo J77? ^JGGPPG!
echo ^YGBGGG5!
echo ~YGGGGGY~
echo .!5GGGBGJ^
echo ?BBGBGJ^
echo .~Y5?:
echo --------------------------------------------------------------------------------------------
echo Main menu
echo 1. Notepad
echo 2. Watch movies
echo 3. Calculator
echo 4. System info
echo 5. Chat
echo 6. Reboot
echo 7. Shutdown
set /p input2=/
if "%input2%" == "1" goto notepad
if "%input2%" == "2" goto movies
if "%input2%" == "3" goto calculator
if "%input2%" == "4" goto info
if "%input2%" == "5" goto chat
if "%input2%" == "6" goto boot
if "%input2%" == "7" exit
goto menu

:notepad
echo Opening Notepad...
start notepad
goto menu

:movies
echo Opening Movies folder...
start "" "C:\Movies"  # 可替换为你实际的电影文件夹路径
goto menu

:calculator
echo Opening Calculator...
start calc
goto menu

:info
echo System Information:
systeminfo
pause
goto menu

:chat
echo Chat feature placeholder...
pause
goto menu

(注:我给各个功能分支补了基础实现,你可以根据需求自行修改)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 13:42:38