gpt4 book ai didi

powershell - 执行需要来自 Jenkins 管道的参数的 Powershell 脚本

转载 作者:行者123 更新时间:2023-12-03 21:18:59 24 4
gpt4 key购买 nike

我有一个看起来像这样的项目:

project
|
├───src
│ Utility.groovy

└───vars
pipeline.groovy
script.ps1

pipeline.groovy我有实用对象:
def util = new Utility(this)

以及调用 util.scriptCall(arg1: "1", arg2: "2", arg3: "3") 的步骤,其定义为:
this.context.powershell returnStdout: true, script: ".\\script.ps1 -Arg1 ${args.arg1} -Arg2 ${args.arg2} -Arg3 ${args.arg3} -Workspace ${this.context.env.workspace}"

从我发现的所有内容中,我应该正确地调用它,但是我收到以下错误:
.\script.ps1 : The term '.\script.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

我已经安装了 Powershell 插件,但是缺少与 Jenkins 相关的任何文档都没有帮助。我搬家了 script.ps1进入 src文件夹,甚至尝试制作 scripts具有相同结果的文件夹。

知道为什么我调用脚本被解释为 cmdlet 吗?

最佳答案

因为该脚本在您尝试调用该脚本的位置不可用。

使用绝对路径调用脚本。如果路径包含空格,请使用调用运算符 (&)。

& "absolutePathToScript/script.ps1" 

我不确定,但 Jenkins 会通过 $env:workspace 注入(inject)工作区。 (至少它会在正常的 PowerShell 构建步骤中这样做),因此您可以通过以下方式调用脚本:
& "$($env:workspace)/vars/script.ps1"

关于powershell - 执行需要来自 Jenkins 管道的参数的 Powershell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56463404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com