I'm writing a batch file to run some builds using Visual C++. I would like to "undo" the vsvars32.bat/vcvarsXX.bat changes at the end of the script so that I leave the environment unchanged from before the script ran.
Example 1 - using vsvars32.bat
call %VS100COMNTOOLS%vsvars32.bat
devenv myProject.sln /Build "Debug|Win32"
:: Now undo vsvars32.bat
Example 2 - using vcvars32.bat and vcvars64.bat
<path to VC bin>vcvars32.bat
:: cmd line build calls for 32 bit application
:: Now undo vcvars32.bat
<path to VC bin>amd64\vcvars64.bat
:: cmd line build calls for 64 bit application
:: Now undo vcvars64.bat
Any suggestions?
The solution is simple - SETLOCAL coupled with ENDLOCAL. Type HELP SETLOCAL
or HELP ENDLOCAL
to get more info on usage.
Example 1:
setlocal
call %VS100COMNTOOLS%vsvars32.bat
devenv myProject.sln /Build "Debug|Win32"
endlocal
Example 2:
setlocal
<path to VC bin>vcvars32.bat
:: cmd line build calls for 32 bit application
endlocal
setlocal
<path to VC bin>amd64\vcvars64.bat
:: cmd line build calls for 64 bit application
endlocal
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With