有人能帮我了解我的批处理程序发生了什么吗?(菜单/多选项)



你好,我是一名程序员,正在制作一个使用批处理的小"工具",我遇到了一个问题。。当你输入一个输入时,无论我(或用户(做什么,它都会转到第一个选项

echo            1) File Explorer
echo.
echo            2) Terminal
echo.           
echo            3) Tools
echo.
echo            4) About
echo.
echo            5) Exit
::This is the Main Menu Input Stuff:::::::::::::::;::::
set /P Input = ">"
if /I %Input% EQU "1" goto :FileExplorer
if /I %Input% EQU "2" goto :Terminal
if /I %Input% EQU "3" goto :Tools
if /I %Input% EQU "4" goto :About
if /I %Input% EQU "5" goto :ExitQ

所以我不确定我做错了什么,所以任何帮助都是好的。谢谢还有一些事情,我检查了拼写错误,并用else语句重写了它,但这只是使它崩溃/退出。

  if /I %Input% EQU "1" goto :FileExplorer

您需要包括引号,因为比较是文字(不需要冒号(

 if /I "%Input%" EQU "1" goto FileExplorer

批处理只是一行接一行地收费,直到它被告知某个地方的goto或到达文件末尾,因此,如果none测试通过goto导致分支,则将执行... equ "5"之后的下一条语句。我保证以下命令是您的第一个选择,:fileexplorer

正如aschipfl所指出的,setinput之后的空间是显著的,应该删除。这是我的标准简介:

Batch对SET语句中的空格敏感。SET FLAG = N将名为"FLAGSpace"的变量设置为值">SpaceN">

最新更新