如果变量等于数字goto

时间:2014-07-21 07:10:03

标签: batch-file

如果变量等于,例如1,那么gotostart1但是如果相同的变量等于2,那么gotostart2

这是我到目前为止所做的:

if %method% == "1" (goto start1)
if %method% == "2" (goto start2)

:start1
echo start1
pause
exit

:start2
echo start2
pause
exit

但即使method变量等于2,它总是回显我start1 ......

3 个答案:

答案 0 :(得分:6)

你必须小心空白。写

if "%method%"=="1" (goto start1)

而是

。您可能需要或不需要%method%周围的额外报价,具体取决于您设置环境变量的方式。

答案 1 :(得分:0)

如果%method%12不匹配,您还可以确保不会执行这些部分的任何部分。您可以goto :eof或仅使用exit /b 1退出。

if %method%=="1" (goto start1)
if %method%=="2" (goto start2)

echo Invalid method: %method%
goto :eof

:start1
echo start1
pause
exit

:start2
echo start2
pause
exit

答案 2 :(得分:0)

有很多if语句有点不整齐..有一个计数器用于比较if语句。这应该可以解决问题,我想......

@echo off

Setlocal enabledelayedexpansion

Set returned_value=0

Set /p method= enter value:

: begin

For %%i in (*) do (
  Call :next_number returned_value
  If "!method!"=="!returned_value!" (
    Goto start!returned_value!
  )
)

Goto begin

:next_number

Set /a %~1+=1

: start1

echo I am start one !!

rem Other statements... etc

从那里你可以拥有各种各样的功能,从start1到你想要的任何一点。