我编写的代码有2个选项供用户输入。例如,他们输入1
选择选项1,2
选择选项2。
现在这是我的问题。我认为' 1未被识别为命令等等。' 看看代码并告诉我哪里出错了。此外,如果您发现任何其他问题,请随时指出它们。 (我知道它说启动游戏?,但它打开tskmngr我只是用它作为占位符的东西)
@echo off
title (Program name) PixelShooter Launcher
color 01
cls
:menu
echo PIXELSHOOTER
echo 1 - Start Game
echo 2 - Options
if %name% == 1 goto tskmngr
if %name% == 2 goto "AppData\Roaming\Pixelshooter\config.ini"
pause
:tskmngr
cls
echo Boot Game? (Y/N)
set /p boot
if %boot% == y start tskmngr
cls
if %boot% == n goto menu
if %boot% == y echo (K)
pause
goto menu
:AppData\Roaming\Pixelshooter\config.ini
cls
echo Boot Options?
set /p boot
if %boot% == y start AppData\Roaming\Pixelshooter\config.ini
cls
if %boot% == n goto menu
if %boot% == y echo (K)
pause
goto menu
答案 0 :(得分:1)
嗯,你现在拥有的东西对我来说并没有多大意义。但这是我修改现有代码的原因。但是你的一个主要问题就在你的第一次暂停之上,你的IF试图看看是否有一个不存在的变量集,因为你忘了设置所述变量,所以在那个暂停之后代码会直接流向:tskmngr。等待输入用作变量时,SET / P是必需的。
ionic serve
答案 1 :(得分:1)
=
命令中缺少set /P
:
set /P boot=
或:
set /P boot=optional prompt text
要确保当用户按 Enter 时%boot%
为空,请在set /P
之前插入此命令:
set boot=
否则,%boot%
会保留其先前的值。
要将用户输入与预定义选项进行比较,请使用if
,如下所示:
if "%boot%"=="1" goto Label
如果用户输入为空,则需要"
。
最后,有一个choice
命令用于这样的一键选项,它将ErrorLevel
设置为所选项目:
choice /C YN /M "Do you want to continue?"
if %ErrorLevel% equ 1 goto Yes_label
if %ErrorLevel% equ 2 goto No_label
goto Fail_label
在命令提示符下键入choice /?
并阅读帮助文本。