如何在运行vcvars32.bat后重置环境

BeR*_*l82 4 command-line batch-file visual-c++

我正在编写一个批处理文件来使用Visual C++运行一些构建.我想"撤消"脚本末尾的vsvars32.bat/vcvarsXX.bat更改,以便在脚本运行之前保持环境不变.

示例1 - 使用vsvars32.bat

call %VS100COMNTOOLS%vsvars32.bat
devenv myProject.sln /Build "Debug|Win32"
:: Now undo vsvars32.bat
Run Code Online (Sandbox Code Playgroud)

示例2 - 使用vcvars32.bat和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
Run Code Online (Sandbox Code Playgroud)

有什么建议?

dbe*_*ham 10

解决方案很简单 - SETLOCAL与ENDLOCAL结合使用.输入HELP SETLOCALHELP ENDLOCAL获取有关使用情况的更多信息.

例1:

setlocal
call %VS100COMNTOOLS%vsvars32.bat
devenv myProject.sln /Build "Debug|Win32"
endlocal
Run Code Online (Sandbox Code Playgroud)

例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
Run Code Online (Sandbox Code Playgroud)