Batch file 我的批处理脚本有问题吗?

Batch file 我的批处理脚本有问题吗?,batch-file,Batch File,我要做一个关于栗色5音乐中比喻语言的项目,并决定做一个测试。我试图数一数有多少问题是正确的。这是我到目前为止的工作,在某个地方有一个bug,但我不知道它是什么 @echo off color 0f :START set Q=Q cls echo Maroon 5 Figuratve Language echo --------------------------- echo Options (Type a number and press ENTER): echo 1) Take quiz ec

我要做一个关于栗色5音乐中比喻语言的项目,并决定做一个测试。我试图数一数有多少问题是正确的。这是我到目前为止的工作,在某个地方有一个bug,但我不知道它是什么

@echo off
color 0f
:START
set Q=Q
cls
echo Maroon 5 Figuratve Language
echo ---------------------------
echo Options (Type a number and press ENTER):
echo 1) Take quiz
echo 2) Change color scheme
set /p Choice= 
if %Choice% == 1 GOTO GAME
if %Choice% == 2 GOTO COLOR
:COLOR
cls
echo Choose a color scheme.
echo 1) Black BG, White text
echo 2) White BG, black text
set /p color= 
if %color% == 1 GOTO 0F
if %color% == 2 GOTO F0
:0F
color 0f
GOTO start
:F0
color f0
GOTO start
:GAME
set qr=0
cls
goto Q1
:Q1
set qn=1
cls
echo What type of figurative language is "I can smell your scent from miles?"
echo a) Simile
echo b) Hyperbole
echo c) Metaphor
echo d) Personification
set /p Q1=
if %Q1% == b goto CORRECT
if NOT %Q1% == b goto INCORRECT
:CORRECT
set /a qr=%qr%+1
set /a qn=%qn%+1
goto %Q%%qn%
:INCORRECT
cls
echo Incorrect...
pause
set /a qn=%qn%+1
goto %Q%%qn%
:Q2
echo testing
echo %qn%
echo %qr%
pause
我可以看到一个bug(代码中可能有更多bug,但这是我第一次看到^^)!:D它在行中
转到%Q%%qn%
。我很久以前就回答过一个类似的问题:


关键是,当在解析时对变量求值时,解释器不知道
%Q%
%qn%
的值是多少。您必须在脚本开头添加
setlocalenabledelayedexpansion
,并用
而不是
%…%
。这将迫使解释器在运行时评估值,考虑到迄今为止对变量所做的任何更改。

“这是我迄今为止的工作,其中有一个bug,但我不知道它是什么。”所以开始调试。我想你不可能把问题缩小一点?具体来说,你应该看到什么输出,你实际看到什么输出?@SomethingDark如果我得到正确的答案,它应该带我到Q2标签,然后say@SomethingDark哦,我很笨,我发现了问题,不过还是谢谢你