通过用户输入窗口执行多个命令终端

问题描述:

我想运行一个bat文件,其中我有两个命令顺序执行。通过用户输入窗口执行多个命令终端

@echo off 
::taking version no. as input 
set /p productVersion="Enter new product version: " 
::executing first command 
mvn versions:set -DnewVersion=%productVersion% && set /p commitChanges="new version is set for all modules %productVersion% Do you want commit your changes for all pom files :(y/n)" && call:commitChanges %commitChanges% 
EXIT /B 
::executing second command, after taking input y/n 
:commitChanges 
If %~1=="y" goto yes 
If %~1=="n" goto no 
If %~1=="Y" goto yes 
If %~1=="N" goto no 
EXIT /B 
:no 
mvn versions:revert 
EXIT /B 
:yes 
mvn versions:commit 
EXIT /B 

第一个命令执行成功,第二个命令行输入,但终端关闭,第二个命令不执行。

你可能会更好使用else子句:

@Echo Off 
:AskFirst 
Set/P "productVersion=Enter new product version: " 
If "%productVersion%"=="" GoTo AskFirst 
Call mvn versions:set -DnewVersion=%productVersion% 
Echo=new version is set for all modules %productVersion% 
:AskSecond 
Set/P "commitChanges=Do you want commit your changes for all pom files :(y/n) " 
If /I "%commitChanges%"=="y" (Call mvn versions:commit) Else (
    If /I "%commitChanges%"=="n" (Call mvn versions:revert) Else (
     GoTo AskSecond)) 
Echo=changes have been committed 
Pause 
Exit/B 

EXIT /B指令退出当前例程,因此例程将在mvn versions:set -Dne...结束后退出。

+0

即使我删除所有EXIT/B,它仍然没有工作 –

+0

什么是'mvn'?如果'mvn'是一个批处理文件('mvn.bat'),那么你需要'调用mvn'以便在完成'mvn'后批量返回到程序。 – Magoo

+0

我在mvn命令前删除了EXIT/B和应用的呼叫。执行第一个命令并提示第二个输入语句,但输入密钥后,显示错误:此时goto是意外的。 –