我想在同一个目录中创建两个批处理文件。但我不想只是两个都开始。我想打开一个批处理文件,让它问l或f,如果我说l它打开一个名为ex1.bat的批处理文件,如果我说2打开ex2.bat
答案 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正确指出的那样。)