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)
RestoreNuget_BuildSolution.bat
PublishProject.bat
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
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
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
IF %ERRORLEVEL% NEQ 0 pause