如果语句不在批处理文件中

时间:2014-12-12 18:49:07

标签: batch-file if-statement cmd

我制作了这个代码,以便提醒我某些我需要做的事情,但由于某些原因,代码不起作用。

@echo off

cls
echo Welcome to ChoreHub
echo -------------------------------------------
echo Today's List:
echo * Do School
echo * Practice Piano
echo * Check to Make Sure House is Clean
echo * Check to Make Sure Room is Clean
echo -------------------------------------------
echo What chore have you finished? (1, 2, 3, 4)
set /P chore=
if %chore%=="1" goto :1 
if %chore%=="2" goto :2 
if %chore%=="3" goto :3 
if %chore%=="4" goto :4 
goto bro

当我输入正确的答案时,它会跳过if语句并直接进入底部。 我不知道为什么,我对批处理文件有点生疏了。如果有人能帮助我那会很棒,谢谢!

2 个答案:

答案 0 :(得分:0)

你还没有设置什么?哪里是1,2,3和兄弟?应该去哪里?

你需要添加这个

:1
echo 1 is selected
goto :end

2:
echo 2 is selected
goto :end

:3 
echo 3 is selected
goto :end


:end

检查此fully working batch example

答案 1 :(得分:0)

很难说没有看到你的所有代码,但我认为,你的问题就在这里:

if %chore%=="1" goto :1 

您正在将您的变量与"1"进行比较(不仅仅是1您的想法)

您需要输入"1"(引用1引用)才能与之匹配。

更好的代码:

if "%chore%"=="1" goto :1

(注意:if %chore%==1似乎也是正确的,但如果%chore%为空,则会出现语法错误)