“VCVARS32.BAT”不是内部或外部命令的一种解决方案
最近将Visual studio 2012换成了2013,但是安装完成后开启ITE SDK工程中的.cmd文件时,出现了””VCVARS32.BAT”不是内部或外部命令”的错误,折腾了很多方案,最后将Visual studio 2013的安装目录由D盘更换为C盘解决了这个问题。记录一下折腾过程的心得。
本文解决方案生效的背景
出现””VCVARS32.BAT”不是内部或外部命令”错误可能会有各种各样的原因,解决方案也不尽相同,原因与解决方案也会与电脑的操作系统以及安装Visual studio的历史相关,所以这里先说明一下本文描述的解决方案有效的背景,有类似背景和类似错误的同学可以参考一下。
我的电脑操作系统起初为win7旗舰版,安装的第一个VS版本是2008,后来安装了VS 2012,2008与2012并存,均安装在D盘;然后操作系统又更新为win10,一直以来,在VS上建立的CSharp,VC++等等工程均工作正常。因为ITE SDK要求搭配VS2013,所以我卸载了2008和2012,然后在D盘安装了VS2013。ITE SDK的所有相关内容都在D盘,在开启ITE SDK工程的.cmd时出现了“VCVARS32.BAT”不是内部或外部命令”。
我卸载VS的方式如下:
在以上背景下尝试过的无效方案
尝试方案的主要参考链接配置msvc命令行环境,prefix\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat,其中的prefix是安装目录的前缀。除上述说法外,我试过清理注册表清理残留等方式后,2次卸载重装VS2013,但是均无效。
网络上还有一种说法:vcvars32.bat已被损坏,重装也不可修复,需要从能用的电脑上拷贝一个过来。经过验证,该方案对我这种状况无效。
考虑将VS2013安装的C盘的原因
尝试各种方案无果后,我开始查看ITE SDK下的文件,在common.cmd我发现如下语句:
1 2 3 4 5 6 7 |
if exist "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin" ( set CFG_VC_INC_PATH=C:/Program Files ^(x86^)/Microsoft Visual Studio 12.0/VC/include set CFG_VC_BIN_PATH=C:/Program Files ^(x86^)/Microsoft Visual Studio 12.0/VC/bin set CFG_WINSDK_INC_PATH=C:/Program Files ^(x86^)/Microsoft SDKs/Windows/v7.1A/Include set VS=3 set VS12=1 ) |
在该文件中,查找所有VS版本都是在C盘,且是VS2013安装时的默认路径。验证确实如此,ITE SDK要求VS安装在C盘的默认目录下。
在此之前我也怀疑过是因为VS2008和VS2012卸载不完整导致的,但事实证明按照本文中描述的卸载方案操作即可。不过若有其他的环境需要将VS完全卸载,Microsoft官方也有给出完全卸载的方案,大家可以参考一下:How to uninstall Visual Studio 2012,该方案同时适用于VS2013。