Run multiple batch (.bat) files from a single batch file and hold the screen when error occurs

I was searching for a while, how to call multiple batch file in a single batch file and hold the screen (command prompt window) and show error if any command of any batch file breaks.

Frankly speaking running multiple batch file in a single one was a very easy task but to hold the window when error occurs if any statement breaks was little bit hard to search on the net, finally i found the solution so i am writing this article, so that you guys don't spend lots of time to search for these silly things :-).

Suppose we have the main batch file named "FullDeploy.bat" and need to call 2 batch files -
1) RestoreNuget_BuildSolution.bat
2) PublishProject.bat

To hold the screen if error occurs in any batch file you just need to add below line of command after every command
IF %ERRORLEVEL% NEQ 0 pause

Calling these batch files into one (FullDeploy.bat)

Running multiple batch file (.bat) into one batch file

SET MSBuildPath=C:\Program Files (x86)\MSBuild\14.0\bin\amd64\
SET RootPath=C:\MyProjects\
SET BuildPath=%RootPath%\BatchFileDemo
SET BatchFiles=%RootPath%\BatchFiles

CD %BuildPath%

call "%BatchFiles%\RestoreNuget_BuildSolution.bat"
call "%BatchFiles%\Publish.bat"

Rem to hold screen after success
pause

RestoreNuget_BuildSolution.bat
.nuget\nuget restore "%BuildPath%\BatchFileDemo.sln"
IF %ERRORLEVEL% NEQ 0 pause

"%MSBuildPath%\MSBuild.exe" "%BuildPath%\BatchFileDemo.sln" /t:Clean;Build /p:Configuration=Release /p:TargetFramework=v4.0  /p:SkipPostSharp=True /p:RunCodeAnalysis=False /p:VisualStudioVersion=11.0

IF %ERRORLEVEL% NEQ 0 pause

PublishProject.bat
"%MSBuildPath%\MSBuild.exe" "%BuildPath%\BatchFileDemo.csproj" /t:Clean;Build /p:DeployOnBuild=true /p:Configuration=Release /p:TargetFramework=v4.0 /p:VisualStudioVersion=11.0 /p:PublishProfile=OnRoot_Output /p:RestorePackages=false /p:SkipPostSharp=true

IF %ERRORLEVEL% NEQ 0 pause


Popular Posts