批处理文件将不允许交互,直到启动应用程序关闭

时间:2013-02-06 23:22:09

标签: windows batch-file execute

我正在编写一个允许选择的批处理文件。

这是我遇到的问题......

如果我选择在单独的窗口(资源管理器/单独)中启动Internet Explorer的选项,我无法与我的批处理文件交互并选择其他选项,直到我启动的IE窗口关闭。

我希望能够与我的菜单进行交互,启动应用程序,并在我想要的时候进行特殊选择...我不想关闭我刚启动的应用程序以便再次与我的批处理文件交互

我正在使用此批处理文件访问我创建的不同菜单,以便在支持我的用户(在大型IT服务台)的同时在不同时间完成一系列任务。

示例:

:MENUS1
CLS

ECHO ============= MENU NAME =============
ECHO -------------------------------------
ECHO 1.  Explorer Separate S1
ECHO 2.  Control Panel S2
ECHO 3.  Network Connections S3
ECHO 4.  Add/Remove Programs S4
ECHO 5.  Internet Options S5
ECHO 6.  Java Control Panel S6
ECHO 7.  More Options S7
ECHO -------------------------------------
ECHO 8.  Selection S8
ECHO -------------------------------------
ECHO 9.  Selection S9
ECHO -------------------------------------
ECHO ==========PRESS 'Q' TO QUIT==========
ECHO ======PRESS 'MM' FOR MAIN MENU=======
ECHO.

SET INPUT=
SET /P INPUT=Please select a number:

IF /I '%INPUT%'=='S1' GOTO SelectionS1
IF /I '%INPUT%'=='S2' GOTO SelectionS2
IF /I '%INPUT%'=='S3' GOTO SelectionS3
IF /I '%INPUT%'=='S4' GOTO SelectionS4
IF /I '%INPUT%'=='S5' GOTO SelectionS5
IF /I '%INPUT%'=='S6' GOTO SelectionS6
IF /I '%INPUT%'=='S7' GOTO SelectionS7
IF /I '%INPUT%'=='S8' GOTO SelectionS8
IF /I '%INPUT%'=='S9' GOTO SelectionS9
IF /I '%INPUT%'=='Q' GOTO Quit
IF /I '%INPUT%'=='MM' GOTO MENU

CLS

ECHO ============INVALID INPUT============
ECHO -------------------------------------
ECHO Please select a number from the 
ECHO Shortcut Menu [S1-S9] or select 'MM'
echo for Main Menu or 'Q' to quit.
ECHO -------------------------------------
ECHO ======PRESS ANY KEY TO CONTINUE======

PAUSE > NUL
GOTO MENU

REM System Shortcuts Option 1 S1

:SelectionS1
Explorer /separate
GOTO MENUS1

:SelectionS2
panel
GOTO MENUS1

:SelectionS3
ncpa.cpl
GOTO MENUS1

:SelectionS4
appwiz.cpl
GOTO MENUS1

:SelectionS5
inetcpl.cpl
GOTO MENUS1

:SelectionS6
jpicpl32.cpl
GOTO MENUS1

因此,如果我选择选项#1 - Explorer Separate S1它会执行命令explorer / separate并启动一个新的资源管理器窗口,但如果我还想选择选项#2 - 控制面板S2打开控制面板......在关闭批处理打开的资源管理器窗口之前,我无法做到这一点。旁注,我必须在每个命令之后添加'GOTO MENUS1',因为1)在我做之前 - 所有命令都试图一个接一个地启动并且2)我想重定向回菜单... < / p>

关于如何解决这个问题以及我可以与批处理文件进行交互的任何想法,而无需关闭我通过批处理打开的应用程序?

1 个答案:

答案 0 :(得分:1)

如果您希望在启动的程序终止之前将控制权返回给批处理文件,则必须使用start ProgramName Options。例如:

:SelectionS1
start Explorer /separate
GOTO MENUS1

/separate参数告诉Windows启动新的Explorer实例,这与使用start Explorer不同。