我需要使用Visual Studio命令提示符(2010)从命令行运行MSBuild。它曾经工作得很好。现在当我打开窗口时,我收到以下错误消息:
\Common was unexpected at this time.
尝试在失败后运行msbuild
命令。
我自然认为这是一个问题,在我的PATH环境变量中有一个不带引号的条目,可能来自最近的流氓安装。我查了一下,但PATH似乎是犹太人。
进入文件系统,我发现提示符运行的批处理文件是C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin \ vcvars32.bat。我通过输入ECHO
语句来跟踪错误的位置来编辑它。这似乎指出了这一行的错误:
@if not "%WindowsSdkDir%" == "" (
如果删除引号,则错误不同:“此时不会出现文件。”
此后的下两行是:
@echo 51
@set "PATH=%WindowsSdkDir%bin\NETFX 4.0 Tools;%WindowsSdkDir%bin;%PATH%"
我认为失败的语句是第二行,但echo
语句不会产生任何输出,所以我不知道这是怎么回事。
我使用的是64位版本的Windows 7。
我会感激任何帮助。
答案 0 :(得分:29)
答案 1 :(得分:3)
我的问题是在if块中,变量赋值的rval(在我的情况下为%PATH%)包含括号,例如:
set var=foo ) got ya
if 1 == 2 (
set var2=%var%
)
显示"此时得到意外。"
我在这里找到答案:Batch file variable with spaces and parentheses。这是使用set的扩展语法。例如:
set "var2=%var%"
这不会添加引号,也不会影响存储在%var2%中的结果。
答案 2 :(得分:0)
我在PATH变量中引用了引号("),在我删除它之后它开始工作。
答案 3 :(得分:0)