27

这听起来像一个简单的问题,但是我在网上看了之后一直无法解决。我基本上想在 Jenkins 中执行一个 PowerShell 脚本(例如 script.ps1)并报告成功/失败。

尝试 1:以“执行 Windows 批处理命令”的形式运行以下命令

powershell -File c:\scripts\script.ps1

这按预期启动,但几秒钟后退出。

尝试 2:以“执行 Windows 批处理命令”的形式运行以下命令

powershell -NoExit -File c:\scripts\script.ps1

这会成功运行整个脚本,但它永远不会停止。我不得不手动中止脚本。

4

2 回答 2

32

好吧,有一个PowerShell插件,它无论如何都会包装外壳。我在我的服务器上使用它,以标准符号执行脚本:

powershell -File test001.ps1

它没有任何怪癖。

于 2012-05-05T00:17:27.873 回答
7

我发现问题归结为 PowerShell 分别管理 32 位和 64 位版本的执行策略。结帐http://www.gregorystrike.com/2011/01/27/how-to-tell-if-powershell-is-32-bit-or-64-bit/尝试启动两者。在两者中运行Get-ExecutionPolicy,您会发现它们是不同的。

至少在 1.4 版中,插件似乎最终使用了 32 位进程。

于 2015-03-11T23:24:20.947 回答