我最近开始尝试使用Bamboo。我在个人电脑上运行了竹子服务器,并将我们的构建服务器配置为远程代理。我们的构建环境在Windows中。构建过程通过TCL脚本执行,该脚本基本上执行Windows批处理命令来构建不同的东西。远程代理在源代码检出后执行该TCL脚本。但是,支持执行的Windows命令实际上并不执行。例如,如果我们尝试从windows执行msbuild批处理命令,我们将执行
exec "cmd << msbuild **.sln"
在TCL脚本中。此命令的结果是'msbuild'未被识别为内部或外部命令,可操作程序或批处理文件。两个版本的问题已经消失,然后重新出现。
我尝试只是从远程代理上的CMD调用脚本,然后通过Bamboo在我的PC上执行作业(这是默认代理)。上述问题不会发生。
有人能告诉我是否有其他配置我错过了?
谢谢。
答案 0 :(得分:0)
嗯,你的命令:
exec "cmd << msbuild **.sln"
这不起作用(除非你有一个完全被称为程序的程序,我认为这在Windows上是非法的;你不能在文件名中有*
)。相反,您需要通过cmd
或使用直接Tcl样式调用来调用它。
哪一个最好?我不知道;试试看,亲自体会。
cmd.exe
exec cmd /c msbuild *.sln
exec msbuild {*}[glob *.sln]
(请注意,我认为**
始终是不必要的,因为*
在扩展glob时只是意味着“任意数量的任何字符”。如果您正在使用它来表示“递归搜索”一个目录结构“,这样说,我将使用Tcllib find
包中的fileutil
命令提供代码。)