batch-file - Batch If 语句给出“此时是意外的”并崩溃
问题描述
这个程序(以及我过去工作过的程序)总是会使程序崩溃并使其无法正常工作。同时,如果我删除它们,其中的代码运行良好。我已经包含了暂停命令来查看问题的根源,并且问题从 if 语句的第一行开始。
echo (: Gold Fish Game :)
echo ####################
echo 1 - Begin Journey
echo 2 - Tragic Backstory
echo 3 - Exit This
set /p choice = "Choose one dude "
if %choice% == 1 (
goto S1L1
)
if %choice% == 2 (
goto MenuBackstory
)
if %choice% == 3 (
exit
)
解决方案
您使用了错误的命令,该Set /P
命令根本不接受任何输入,或者绝对接受任何输入,并且在在其他地方使用该输入之前需要一个非常强大的验证程序。
因此,您应该使用choice
命令实用程序。打开命令提示符窗口,键入choice /?
,按ENTER键,然后阅读使用信息。
例子:
Echo (: Gold Fish Game :)
Echo ####################
Echo 1 - Begin Journey
Echo 2 - Tragic Backstory
Echo 3 - Exit This
%SystemRoot%\System32\choice.exe /C 123 /M "What is your chosen item number"
If ErrorLevel 3 Exit /B
If ErrorLevel 2 GoTo MenuBackstory
:S1L1
推荐阅读
- javascript - 如何自定义音频播放器?
- vb.net - 谁赢得了比赛?
- mysql - 如何使用内部联接创建触发器
- excel - 有没有办法检查特定工作表的嵌套工作簿并列出或标记那些不包含工作表的工作簿?
- swift - 如何在 SwiftUI 中定义自定义列表布局?
- architecture - 为什么现代处理器仍然使用有序流水线?
- jquery - Fantasybox首先加载到我的页面图标下并疯狂放大
- python - Django 没有将 Heroku Websokect 路由到 dyno
- asp.net-core-2.0 - 身份服务器脱机时验证 access_token
- c# - 参数中的委托