【发布时间】:2012-02-28 06:07:44
【问题描述】:
这是我的配置:
在构建日志中,我只看到前两行的输出,然后“进程退出,代码 0”作为此构建步骤的最后一个输出。
我尝试使用 SYSTEM 帐户(使用PsTools)在构建服务器中打开一个终端,因为 Team City 配置为在该帐户下运行。然后,我创建了一个具有相同内容的 Test.ps1 文件并运行了一个类似于 Team City 的命令:
[Step 1/4] Starting: C:\Windows\system32\cmd.exe /c C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -Command - <C:\TeamCity\buildAgent\temp\buildTmp\powershell5129275380148486045.ps1 && exit /b %ERRORLEVEL%
(当然,.ps1 文件的路径和 cmd.exe 初始部分除外)。看到前两行的输出,然后终端一下子消失了!
我在哪里搞砸了?顺便说一下,我是 Powershell 新手。
【问题讨论】:
-
您是否设置了执行策略以允许您的脚本?
-
我选择“使用 -Command 参数将脚本放入 Powershell 标准输入”来避免这种情况。此外,如果它可以运行前两行,我认为权限是可以的,还是我需要额外的权限来运行条件逻辑?那太疯狂了:P
-
我没有这个工具的上下文,但我想知道它是否有与多行标准输入有关的问题?尝试用以下(单行)替换条件以查看是否得到不同的结果: if ("1" -eq "1") { write-host "test" } else { write-host "else test" }跨度>
-
当我尝试使用类似命令行的脚本时,一切正常。尝试将
&& exit ...替换为&& pause,以查看在窗口关闭之前是否可以看到最后一行“Ok, nothing to see...”。或者您可以将/c更改为/k,这样窗口就会保留 - 只是为了帮助调试。 -
我觉得你的剧本太搞笑了,试试不那么搞笑的剧本 :-)
标签: powershell teamcity powershell-1.0