设置路径后作为环境变量无法运行程序

时间:2016-10-18 08:41:51

标签: batch-file msbuild

我已经设置了一个指向msbuild.exe文件夹的新环境变量。

"C:\Program Files\TortoiseSVN\bin\svn.exe" checkout %CHECKOUT% %PATH%
cd %PATH%
nuget restore OpenText.sln
msbuild.exe OpenText.sln

现在,如果我启动一个新的cmd并运行“msbuild.exe”,程序运行正常,但是在运行这个简单的bat之后,程序就找不到了:

Data
  

msbuild未被识别为内部或外部命令。

提前致谢

2 个答案:

答案 0 :(得分:0)

首先,你在哪里设置msbuild路径?要解决您的问题,请检查您是否遵循了此过程:

  1. 打开系统控制面板,检查高级系统设置。
  2. 单击环境变量并编辑路径
  3. 添加分号,然后添加msbuild路径。
  4. 打开一个新的命令提示符,检查它是否正常工作。
  5. 请注意,如果您在一个命令提示符下设置msbuild,它将无法在另一个命令提示符中使用。
  6. 当我查看你的逻辑时,我看到的另一个问题是,你试图cd到%PATH%应该避免,你要么将环境变量路径重置为新路径并尝试cd到它或者你会在文件名上找到更长的问题,请改用另一个变量。

  7. 在你正在调用的bat中,在根级别添加一个条件,这样如果找不到msbuild,则基于%ERRORLEVEL%,尝试在批处理级别再次将msbuild添加到路径,以便构建将继续。

答案 1 :(得分:0)

我在评论中看到和乔伊一样的事情。您对CD %PATH%的使用是一个表示问题的红旗。

PATH是一个关键环境变量,包含重要可执行文件所在的文件夹路径的分隔列表。命令处理器使用该列表在发出外部命令时定位程序,而没有命令的完整路径。

如果PATH设置正确,那么您的命令CD %PATH%将无效。但我怀疑你有一些脚本将PATH定义到特定的文件夹,也就是nuget所在的位置。在这种情况下,您的CD %PATH%命令有效,但现在cmd.exe不知道msbuild.exe位于何处。

故事的道德 - 不要为了你自己的目的使用PATH。选择一些未保留的变量名称。