如何从jenkins声明性管道中的powershell中获取变量?

如何从jenkins声明性管道中的powershell中获取变量?,powershell,jenkins,jenkins-pipeline,jenkins-declarative-pipeline,Powershell,Jenkins,Jenkins Pipeline,Jenkins Declarative Pipeline,我使用的是jenkins声明性管道。 在上面的代码中,我试图使用groovy中存储的$env:StorysTested的值,该值是在powershell中分配的。在powershell执行结束后,是否有任何方法可以保留在powershell中分配的变量值。将其存储在env变量中是我想到的一种方法,但显然不起作用。如果使用$env:StorysTested=“some value”设置环境变量,则此变量将存储在powershell进程中,并且在该进程之外不会永久或可见 要创建更多永久性环境变量(即

我使用的是jenkins声明性管道。
在上面的代码中,我试图使用groovy中存储的$env:StorysTested的值,该值是在powershell中分配的。在powershell执行结束后,是否有任何方法可以保留在powershell中分配的变量值。将其存储在env变量中是我想到的一种方法,但显然不起作用。

如果使用
$env:StorysTested=“some value”
设置环境变量,则此变量将存储在powershell进程中,并且在该进程之外不会永久或可见

要创建更多永久性环境变量(即用户级或机器级),您需要使用.NET Framework和
SetEnvironmentVariable
方法:

        steps {
            script{
                env.StorysTested = ''

                try{
                    powershell('''
                     //some code here
                     foreach ( $item in $Comments ) 
                     {  
                     //some code here
                     //assigning a new value to StoryTested env variable
                     $env:StorysTested = "some value"   
                     }
                     //below line works fine and displays the value
                     Write-Output "Stories tested : $env:StorysTested"
                     ''')
                     //below null value is displayed for StorysTested`` 
                     echo " From Grrovy : ${env.StorysTested}"
                    }
                    catch(err)
                    {
                     throw err
                    }
           }


要从PowerShell中删除,请使用相同的.NET方法并向变量分配
$null
值,如下所示:

[Environment]::SetEnvironmentVariable("StorysTested", "some value", "Machine")

希望这对您有所帮助

如果您使用
$env:StorysTested=“some value”
设置环境变量,则此变量将存储在powershell进程中并且在此进程外不会永久或可见

要创建更多永久性环境变量(即用户级或机器级),您需要使用.NET Framework和
SetEnvironmentVariable
方法:

        steps {
            script{
                env.StorysTested = ''

                try{
                    powershell('''
                     //some code here
                     foreach ( $item in $Comments ) 
                     {  
                     //some code here
                     //assigning a new value to StoryTested env variable
                     $env:StorysTested = "some value"   
                     }
                     //below line works fine and displays the value
                     Write-Output "Stories tested : $env:StorysTested"
                     ''')
                     //below null value is displayed for StorysTested`` 
                     echo " From Grrovy : ${env.StorysTested}"
                    }
                    catch(err)
                    {
                     throw err
                    }
           }


要从PowerShell中删除,请使用相同的.NET方法并向变量分配
$null
值,如下所示:

[Environment]::SetEnvironmentVariable("StorysTested", "some value", "Machine")
希望有帮助