批处理文件,打开两个批处理文件之一

时间:2013-11-17 22:45:21

标签: batch-file

我想在同一个目录中创建两个批处理文件。但我不想只是两个都开始。我想打开一个批处理文件,让它问l或f,如果我说l它打开一个名为ex1.bat的批处理文件,如果我说2打开ex2.bat

2 个答案:

答案 0 :(得分:1)

如果您不熟悉批处理文件,则此选项可能更容易理解。

@ECHO OFF

:start
CLS
ECHO l = Launch ex1.bat
ECHO f = Launch ex2.bat
SET /p option=Enter Selection: 
IF "%option%"=="l" start ex1.bat
IF "%option%"=="f" start ex2.bat
GOTO start

这假设您将ex1.bat和ex2.bat放在与此批处理文件相同的目录中。

此批处理将在新窗口中打开ex1.bat或ex2.bat,但它本身将保持打开状态。 您可以通过删除“开始”这个词来进行选择后将其更改为“关闭”......

IF "%option%"=="l" ex1.bat
IF "%option%"=="f" ex2.bat

说明:

@ECHO OFF

这将关闭命令的显示,并仅在屏幕上显示输出

:start

设置批处理文件可以返回的制造商。

CLS

在继续

之前清除任何先前文字的窗口
ECHO l = Launch ex1.bat
ECHO f = Launch ex2.bat

ECHO是一个命令,告诉它在屏幕上显示以下文字。

SET /p option=Enter Selection: 

创建一个名为'option'的变量,但通过显示消息“Enter Selection:”来询问您要在其中存储的内容

IF "%option%"=="l" start ex1.bat
IF "%option%"=="f" start ex2.bat

检查在'option'变量的提示符下输入的内容...如果是'l',那么它将运行名为ex1.bat的文件。 如果它是'f',那么它将运行名为ex2.bat

的文件
GOTO start

告诉它返回名为'start'的标记并从那一点再次运行。

答案 1 :(得分:0)

你没有说你正在使用哪个Windows版本,所以我假设你有Win7或Win8。

@echo off
setlocal

:loop
set /p "Input=Enter l, f or simply [ENTER] to exit :<space>"

if "%Input%" equ "" exit /b
if /i "%Input%" equ "l" (
    call ex1.bat
    exit /b
)
if /i "%Input%" equ "f" (
    call ex2.bat
    exit /b
)
goto loop

请注意上面给出的代码中的&lt; space&gt; 。它实际上代表一个空格字符,而不是字符串“&lt; space&gt;”。

(更新:我将if {%Input%}行从使用花括号更改为使用双引号(如if "%Input%"),这对于错误的用户输入更为强大,正如foxidrive正确指出的那样。)