如何捕获';n';Windows批处理文件的命令行中的输入?

如何捕获';n';Windows批处理文件的命令行中的输入?,windows,batch-file,Windows,Batch File,如何在windows批处理文件中检索多个用户输入 @echo off echo Type tomcat, mvn set /p input=Enter Selection: if /i "%input1%" EQU "tomcat" goto tomcat if /i "%input%" EQU "mvn" goto maven :tomcat cd /D C:\Tools\apache-tomcat-7.0.55>start. start . GOTO EOF :mav

如何在windows批处理文件中检索多个用户输入

@echo off
echo Type tomcat, mvn
set /p input=Enter Selection: 
if /i "%input1%" EQU "tomcat" goto tomcat
if /i "%input%" EQU "mvn" goto maven

 :tomcat
 cd /D C:\Tools\apache-tomcat-7.0.55>start. 
 start .
 GOTO EOF

 :maven
 cd /D C:\Tools\apache-maven-3.2.2
 start .
 GOTO EOF

 :EOF

我正在为自己创建一个小实用工具bat文件,所以当我输入tomcat时,如果输入了mvn,它将打开tomcat或maven。但是,我想输入类似于tomcat deploy的内容,它将在tomcat目录中运行deploy.bat文件

您可以使用
CALL
SHIFT
IF
GOTO
解析或迭代用户输入。阅读这些命令的
帮助
页面,然后尝试以下代码,这将帮助您开始

首先获取用户输入,并将其作为
调用的参数传递

set /p input=Enter selection: 
call :doall %input%
goto :eof
然后将参数视为参数%1%2%3
SHIFT
将它们循环到
%1
并使用
GOTO
循环,直到完成(
如果
%1为空)

您可以专门处理每个参数

:doall
if /i .%1==.this call :dothis %*
if /i .%1==.that call :dothat %*
goto :eof

:dothis
start this %2 %3 %4
goto :eof

请你解释一下这是怎么回事?脚本类型的用户应该选择什么?那么,预期的行为是什么?用户将键入选项1或选项2或选项的任意组合?在任何情况下该怎么办?因此,如果要检测
tomcat部署
tomcat取消部署
等,请输入并转到不同的标签?
:doall
if /i .%1==.this call :dothis %*
if /i .%1==.that call :dothat %*
goto :eof

:dothis
start this %2 %3 %4
goto :eof