所以我创建了一个简单的菜单批处理文件。问题是它等待您再次进入之前退出程序。如何制作它以便我可以输入一个数字来转到特定的程序,然后再次提示转到另一个程序而不退出?
答案 0 :(得分:2)
应该派上用场的模板:
@ECHO OFF
:Menu
CLS
ECHO ============= MENU =============
ECHO 1. Item 1
ECHO 2. Item 2
ECHO 3. Item 3
ECHO ----------PRESS 'Q' TO QUIT----------
SET INPUT=
SET /P INPUT=Please select a number:
IF /I '%INPUT%'=='1' GOTO Item1
IF /I '%INPUT%'=='2' GOTO Item2
IF /I '%INPUT%'=='3' GOTO Item3
IF /I '%INPUT%'=='Q' GOTO Quit
CLS
ECHO ************INVALID INPUT************
ECHO Please select a number from the Main
ECHO Menu [1-3] or select 'Q' to quit.
ECHO ======PRESS ANY KEY TO CONTINUE======
PAUSE > NUL
GOTO Menu
:Item1
CMD1.EXE
GOTO Menu
:Item2
CMD2.EXE
GOTO Menu
:Item3
CMD3.EXE
GOTO Menu
:Quit
CLS
EXIT
一些评论:
答案 1 :(得分:1)
退出菜单中的程序后,添加此命令
%0
只要未使用shift
,它就是一个包含批处理文件名的命令,它会重新启动没有call
关键字的批处理文件。
另一种选择是使用这样的循环和重新输入批处理文件开头的goto命令:
如果您使用setlocal
语句,则可以将它们置于:loop
之上以停止最终的递归错误。
@echo off
:loop
rem all your batch code inside here
goto :loop
答案 2 :(得分:0)
使用:main
之类的函数来创建主函数(用户输入的函数)然后在所有其他函数中输入goto main
(或者调用任何函数) :
:func1
//stuff here
goto main