【问题标题】:Visual Studio Command Prompt gives "\Common was unexpected at this time"Visual Studio 命令提示符给出“\Common 在此时出乎意料”
【发布时间】:2022-04-24 00:09:41
【问题描述】:

我需要使用 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。

如果有任何帮助,我将不胜感激。

【问题讨论】:

  • 当您使用 64 位 Windows 时,我猜您指的是 64 位 bat 文件 C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat,而不是您提到的 32 位文件。不幸的是,我没有 64 位机器可以测试!

标签: visual-studio visual-studio-2010 batch-file


【解决方案1】:

请参阅this 线程。

我的猜测是你的PATH 最近被修改了,现在包含一些带有引号的文件夹路径。

HTH

【讨论】:

  • 完美!谢谢。我删除了引号,它又可以工作了。基于Windows仍然需要引号来阻止它与空格混淆的假设,我没有尝试过。似乎不再是这种情况了。再次感谢!
  • 非常感谢!我在这上面浪费了 2 天,但没有任何帮助!终于你的答案来拯救了!你摇滚!
  • 这么简单会让我们感到沮丧:)
  • 我遇到了同样的问题,并通过检查 PATH 解决了它。它包含'\r',回车!!!我删除了它。
  • 嗯我检查了我的路径变量,没有单引号或双引号或回车。我什至通过将注册表值复制粘贴到 Notepad++ 中进行了仔细检查。还有其他想法吗?
【解决方案2】:

我的问题是在 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% 中的结果。

【讨论】:

    【解决方案3】:

    导致此问题的 PATH 变量中有引号 ("),在我删除它们后它开始工作。

    【讨论】:

      【解决方案4】:

      另外,环境变量列表中的分号(“;”)在 Win 10 上也会导致相同的行为。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-11
        • 2018-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多