批处理总是发送回第一个选项

时间:2014-06-20 18:42:35

标签: batch-file

我正在使用livestreamer来观看视频流,4chan上的一个人为它制作了一个批处理文件。

这一个:http://pastebin.com/MyADP1MS

它有效,但它只有几个选项,所以我添加了更多,直到我用完了数字,然后它发生在我应该有更多的选项,所以它看起来干净整洁,并没有一次列出30个流。此时(有9个选项)批处理应该按原样运行。

我添加了更多选项,现在它又将我发回给了我。我尝试添加一个新变量:end在结尾处与:start和make“0”选项一起使用,但同样的事情发生了。

然后我尝试使用Q(和其他人)而不是0作为后退选项,然后它说Q当前不可用并跳转到下一个选项。

这就是我现在的位置:http://pastebin.com/MWsTWR67

我知道如何做到这一点。据我所知,我的版本应该可行,但它没有。请帮忙。

1 个答案:

答案 0 :(得分:0)

对于任何等于或大于n的值,if errorlevel n都为真。因此,您需要将errorlevel从较高值检查到较低值,但代码中的第一个测试是

if errorlevel 0 goto start

choice命令之后,此条件始终为真。任何等于或大于0的错误级别值都是如此。

此外,您正在检查choice命令中包含的“值”。这是不正确的。 errorlevelchoice设置,具体取决于对参数列表中位置的选择。所以,你的代码应该看起来:

....
CHOICE /C 1234567890 /M "> Enter your choice:"
IF ERRORLEVEL 10 GOTO start
IF ERRORLEVEL 9  GOTO d2l
IF ERRORLEVEL 8  GOTO gdstudio
IF ERRORLEVEL 7  GOTO starladder
IF ERRORLEVEL 6  GOTO dreamleague
IF ERRORLEVEL 5  GOTO d2cl
IF ERRORLEVEL 4  GOTO dotacinema
IF ERRORLEVEL 3  GOTO mlgtko
IF ERRORLEVEL 2  GOTO bts
IF ERRORLEVEL 1  GOTO jdr
....