我已经设置了一个指向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未被识别为内部或外部命令。
提前致谢
答案 0 :(得分:0)
首先,你在哪里设置msbuild路径?要解决您的问题,请检查您是否遵循了此过程:
当我查看你的逻辑时,我看到的另一个问题是,你试图cd到%PATH%应该避免,你要么将环境变量路径重置为新路径并尝试cd到它或者你会在文件名上找到更长的问题,请改用另一个变量。
在你正在调用的bat中,在根级别添加一个条件,这样如果找不到msbuild,则基于%ERRORLEVEL%,尝试在批处理级别再次将msbuild添加到路径,以便构建将继续。
答案 1 :(得分:0)
我在评论中看到和乔伊一样的事情。您对CD %PATH%
的使用是一个表示问题的红旗。
PATH
是一个关键环境变量,包含重要可执行文件所在的文件夹路径的分隔列表。命令处理器使用该列表在发出外部命令时定位程序,而没有命令的完整路径。
如果PATH设置正确,那么您的命令CD %PATH%
将无效。但我怀疑你有一些脚本将PATH定义到特定的文件夹,也就是nuget所在的位置。在这种情况下,您的CD %PATH%
命令有效,但现在cmd.exe不知道msbuild.exe位于何处。
故事的道德 - 不要为了你自己的目的使用PATH。选择一些未保留的变量名称。