如何为用户提供一些选项来编写批处理文件?

时间:2015-08-13 14:03:37

标签: windows batch-file

我想我有我想要的东西(如下所述),再次感谢你,但请另外两个选项...当我想在子菜单中添加两个下一个选项,例如“B”,如go on Begin和“E”喜欢Exit。它会像:

您好我是Zedd,请选择以下一个应用程序:

  1. 记事本
  2. Calc
  3. 其他
  4. 当我像其他人一样触摸“3”时,我会看到下一个菜单:

    1. FFox
    2. IE
    3. 或B.回去
    4. 或E.退出
    5. 我该怎么做?我可以使用0-9或者我也可以使用10,11等吗?

      代码的考试可能是这样的吗?

      @echo off  
      :begin  
      echo.  
      echo Hello, I'm Zedd...  
      echo.  
      echo Choose:
      echo.  
      echo 1. Notepad  
      echo 2. Calc  
      echo 3. Other  
      echo.  
      choice /c 123  
      if %errorlevel%==1 goto :Notepad  
      if %errorlevel%==2 goto :Calc 
      if %errorlevel%==3 goto :Other
      
      :Notepad  
      start notepad.exe  
      goto :eof 
      
      :Calc  
      start calc.exe  
      goto :eof 
      
      :Other  
      echo.  
      echo Choose:  
      echo.  
      echo 1. FFox  
      echo 2. IE  
      echo 3 or B. Back
      echo 4 or E. Exit  
      echo.  
      choice /c 1234(maybe 12be if I can use also b and e, or I can use 3,4... is possible here use 10,11,12 etc.?)    
      if %errorlevel%==1 "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"  
      if %errorlevel%==2 "C:\Program Files\Internet Explorer\iexplore.exe"  
      if %errorlevel%==3 goto :begin?  
      if %errorlevel%==4 exit?  
      goto :other (I want to stay in other for choosing next apps but I want to be able to go back or exit)
      

      另外,我可以用note来做,所以当我选择FFox会有消息“你选择了FFox”等吗?

      希望我清楚地描述它,如果你能帮助我,我会很高兴,谢谢你!

      您能否告诉我如何使用包含不同选项和操作的批处理文件在CMD中编写命令

      我已经研究过我可以使用的功能的一个很好的描述,但我无法在功能上将它们组合在一起。

      以下是我在Windows上运行批处理文件时所需的输出消息示例:

      我需要批处理,例如“test.bat”

      我认为这是最简单的方法。在这批中,我想要一些文字和一些选择。例如:吼叫:

      Hello, I am Zedd, here is few options for you, please choose one. 
      
      1. Run notepad.exe 
      2. Other apps
      

      输入数字1后,将打开记事本。输入数字2后,应显示更多选项:

      1. Firefox
      2. More informations
         etc.
      

      我需要在Windows上运行此批处理文件。

      如何做到这一点的最佳方法是什么?

      它可以全屏显示,也可以只在窗口内显示。

      此外,我还需要打开应用程序或图片等。

2 个答案:

答案 0 :(得分:1)

已编辑以显示第二级选择的使用情况)

只是echochoice命令的组合:

@echo off
:begin
echo Hello, I am Zedd, here is few options for you, please choose one. 
echo 1. Run notepad.exe 
echo 2. Other apps
choice /c 12
if %errorlevel%==1 goto :notepad
if %errorlevel%==2 goto :other    
:notepad
echo you choosed Notepad.
start notepad.exe
goto :eof

:other
echo 1. Mozilla Firefox
echo 2. Microsoft Internet Explorer
echo 3. MyBatchFile
echo B. back to main menue
echo E. exit
choice /c 123B
if %errorlevel%==1 "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
if %errorlevel%==2 "C:\Program Files\Internet Explorer\iexplore.exe"
if %errorlevel%==3 (
  echo you choosed MyBatchFile
  call "c:\test\mybatch.bat"
  goto :begin
)
if %errorlevel%==4 (
  echo you entered "B" to go back to main menue
  goto :begin
)
if %errorlevel%==5 (
  echo bye bye...
  exit /b
)
goto :other

您可以将/n参数添加到choice以暂停[1,2]?

编辑 02-sep(请不要更改您的问题,这可能会使现有答案无效;请改为提出新问题,引用此旧问题)

"我该怎么做?我可以使用0-9号码,或者我也可以使用10,11等?"

没有。 choice对按键做出反应,而不是对输入字符串做出反应,因此只有单个数字或字母。虽然可以3 or B. Backchoice /c 123b4e将为1返回错误级别1,为2返回2,为3返回3,为b返回4或{ {1}},B为5,4e为6。 (详见E)。然后

choice /?

"另外,我可以用note来做,所以当我选择FFox时会有消息"你选择了FFox"等"?

是。只需在每个标签后添加... if %errorlevel%==3 goto :back REM this was a "3" if %errorlevel%==4 goto :back REM this was a "B" ... (请参阅上面带有echo标签的示例。

答案 1 :(得分:0)

是的,可以在普通批处理命令中执行此操作。不过,我建议使用像C ++或C这样的语言来做...但是如果你必须使用批处理,你可以使用here are a lot of commands