Batch file 我的batchfile提示符一直捕捉所有答案作为第一个标签

Batch file 我的batchfile提示符一直捕捉所有答案作为第一个标签,batch-file,cmd,exe,Batch File,Cmd,Exe,我的批处理文件总是返回插件,而不是去所需的地方,当我按下这些提示之间的任何数字。这个问题可能是由什么引起的 @回声关闭回声控制面板已初始化 :开始 选项/N/C:1234/M“选择一个数字(1(插件),2(MOTD),3(日志), 4(完)“%1 如果%%ERRORLEVEL==1转到一 如果%%ERRORLEVEL==2转到2 如果%%ERRORLEVEL==3转到三 如果%%ERRORLEVEL==4转到结束 字体一 回声插件 explorer\\192.168.1.16\服务器\专用服务器

我的批处理文件总是返回插件,而不是去所需的地方,当我按下这些提示之间的任何数字。这个问题可能是由什么引起的

@回声关闭回声控制面板已初始化

:开始

选项/N/C:1234/M“选择一个数字(1(插件),2(MOTD),3(日志), 4(完)“%1

如果%%ERRORLEVEL==1转到一

如果%%ERRORLEVEL==2转到2

如果%%ERRORLEVEL==3转到三

如果%%ERRORLEVEL==4转到结束

字体一

回声插件

explorer\\192.168.1.16\服务器\专用服务器\以下是 实际服务器目录\插件

开始

:两个

回音马达

记事本\\192.168.1.16\服务器\专用服务器\以下是 实际服务器目录\plugins\Essentials\motd

开始

字体三

回声测井

记事本\\192.168.1.16\服务器\专用服务器\以下是 实际服务器目录\Server

开始

:结束

停顿

三个问题:

  • ERRORLEVEL检查给定值或更高的值,因此您必须从高到低排序,而不是相反
  • 这是ERRORLEVEL,不是%%ERRORLEVEL
  • 这只是一个错误级别num
  • 总之,你会得到

    IF ERRORLEVEL 4 GOTO END 
    ...
    IF ERRORLEVEL 1 GOTO ONE
    

    它不应该是
    %ERRORLEVEL%
    而不是
    %ERRORLEVEL
    ?(也许是
    eq
    而不是
    =
    ?)啊,是的,谢谢你,我忘了%%只有一个字符。谢谢,感谢你的建议,它现在可以正常工作了。我想不难判断我是新手。太好了:-)批次有时确实有点奇怪。你不必总是从大到小列出数字。如果需要,可以添加eq(eq)或==。“这没有多大区别。”我只是引用了一个例子。如果你像我建议的那样使用简单的传统格式,它们必须按降序排列,但它可以在任何地方工作,从最旧的DOS到当前版本的Windows<代码>%errorlevel%稍后引入。