gpt4 book ai didi

powershell - 从 jenkins 管道中的 powershell 脚本获取输出值

转载 作者:行者123 更新时间:2023-12-03 21:00:35 25 4
gpt4 key购买 nike

我有一个简单的 Jenkins 管道,它调用一个 PS 文件。 Ps 文件返回一些值,我想知道是否可以将这些值保存到可以在我的管道步骤中使用的变量中。

    pipeline {
agent {label 'agent'}
stages {

stage("first script"){
steps {
echo "Current agent info: ${env.AGENT_INFO}"
script {
def msg = powershell(returnStdout: true, script: '.\\Get-Guid.ps1')
// def msg = powershell(returnStdout: true, script: 'ipconfig')
println "The new GUID is: ${msg}"
my_guid = msg
env.my_guid = my_guid
// print msg#
echo "Is my GUID: ${my_guid}"

}
}
}


stage("Second Script"){
steps {
script {
def msg = powershell(returnStdout: true, script: 'write-output "Powershell is Great"')
// println msg
}
}
}
}
}

Get-GUID.ps1 的内容如下。
$buildguid = (New-Guid).Guid
$name = "Tom"

Write-Output $buildguid
Write-Output $name

理想情况下,我希望将值或 buildguid 存储在来自管道的单独变量中,并将名称存储在单独的变量中。

最佳答案

修改您的 获取-GUID.ps1 将输出写入一个或多个文件并从中检索值的脚本。
您的 获取-GUID.ps1 文件将如下所示:

$buildguid = (New-Guid).Guid
$name = "Tom"

Write-Output $buildguid | Out-File "buildguid.txt"
Write-Output $name | Out-File "name.txt"
可以像这样从管道中检索输出:
pipeline {
agent { label 'windows' }
stages {
stage("Populate variables")
{
steps {
script {
def result = powershell returnStatus:true, script: '.\\Get-GUID.ps1'
}
}
}

stage("Display variables")
{
steps {
script {
def guid = powershell returnStdout:true, script: 'Get-Content .\\buildguid.txt'
def name = powershell returnStdout:true, script: 'Get-Content .\\name.txt'
print guid.trim()
print name.trim()
}
}
}
}
}
备注 :不要忘记在检索时修剪()您的输出。

关于powershell - 从 jenkins 管道中的 powershell 脚本获取输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148672/

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