TeamCity运行Powershell脚本,但未能执行批处理文件

时间:2013-02-15 09:00:15

标签: powershell deployment teamcity

我目前正在使用Teamcity实施部署方法,Teamcity在我的Build Agent上运行Powershell脚本,然后配置我的生产环境等。

我遇到了Powershell脚本的问题,因为它似乎无法从中运行批处理文件。

如果我手动运行脚本,脚本运行完美,只有在通过TeamCity运行时才会失败。

在构建日志中,我收到错误:

'myBatchFile.bat' is not recognized as an internal or external command, operable program or batch file.

批处理文件和powershell脚本位于同一目录中,批处理文件的调用方式如下:

cmd /c Deploy.bat

我已将我的TeamCity配置设置为具有以下内容的构建步骤:

  • 脚本:文件
  • ScriptExecutionMode:使用-File参数执行脚本
  • 脚本参数:无
  • 其他CMD行参数:无

我最初没有使用cmd来尝试执行批处理文件,但执行像.\Deploy.bat这样的批处理文件似乎也没有用。

为了让批处理文件运行,还需要设置一些额外的东西吗?脚本的其余部分运行正常,只是调用没有的批处理。

1 个答案:

答案 0 :(得分:2)

这有点疯狂,因为很难预测发生了什么,但是从描述中看起来路径已经在脚本中被改变了,并且它也是动态的,因为TeamCity创建临时目录,但是如果你替换:< / p>

cmd /c Deploy.bat

cmd /c "$(Split-Path $myinvocation.MyCommand.Path)\Deploy.bat"

然后我认为这将能够找到部署脚本。 让我知道它是怎么回事。