【问题标题】:TeamCity running Powershell script, but failing to execute a batch fileTeamCity 正在运行 Powershell 脚本,但无法执行批处理文件
【发布时间】:2013-02-15 17:23:52
【问题描述】:

我目前正在使用 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这样执行批处理文件似乎也不起作用。

为了让批处理文件运行,我还需要设置什么额外的东西吗?脚本的其余部分运行良好,只是对批处理的调用没有。

【问题讨论】:

  • 你把 Deploy.bat 放在哪里了?
  • Deploy.bat 和 powershell 脚本都在同一个文件夹中

标签: powershell deployment teamcity


【解决方案1】:

这有点疯狂,因为很难预测正在发生的事情,但从描述看来,脚本中的路径已被更改,并且它也是动态的,因为 TeamCity 创建了临时目录,但如果你替换:

cmd /c Deploy.bat

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

那么我认为这将能够定位部署脚本。 告诉我进展如何。

【讨论】:

  • 谢谢,这已为我的 powershell 脚本修复了。只需要修复它在批处理文件中创建的新问题;)
  • 大声笑,这就是 IT 的乐趣所在,你修复了一件事,另一件事就坏了。 :-) 如果您在这方面也需要任何帮助,请告诉我。
猜你喜欢
  • 2023-03-30
  • 2021-03-27
  • 2012-10-20
  • 2011-09-05
  • 1970-01-01
  • 2013-10-20
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多