由于现在实习要接触到,所以今天认真看了一下batch脚本的代码,然后自己试着实现了一下,总体来说,因为我需要用到得脚本内容都是比较简单的,所以还是很顺利,但是在用到 choice 和 goto的时候还是有一些小问题,所以先记下来。
我想要写一个简单的choice语句,然后根据自己的选择跳到相应的模块,但是发现一个我现在无法理解的问题。
echo off
choice /c cte /m "creat,test,end" /t 10 /d c
if errorlevel 3 goto end
if errorlevel 2 goto test
if errorlevel 1 goto crea
:crea
echo you choose c
:EOF
:test
echo you choose t
:EOF
:end
echo you choose e
:EOF
:quit
echo quit
当我用上面这个脚本,也就是说没有在每一个label里面设置 goto的时候,虽然我选择的可能是c 但是还是会将所以的label顺序执行一遍,也就是说不会跳出label,虽然我在每一个label下面都写了:EOF, 也就是说表示这个label已经结束了。
当我选择c时,我期望的输出结果是:
you choose c
但是实际输出结果是:
you choose c
you choose t
you choose e
quit
但是当我在每一个label里面再添加一句goto语句,也就是变成