在Windows上的文件中设置全局环境变量

在Windows上的文件中设置全局环境变量,windows,jenkins,jenkins-pipeline,Windows,Jenkins,Jenkins Pipeline,我有一个运行在Windows系统上的Jenkins CI服务器,现在我想为我的管道设置全局环境变量 我尝试了两种不同的方法都没有成功: node { environment { MY_PYTHON='D:\ProgramData\Anaconda3' PATH='%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%' } stage ('Checkout and Build') { bat 'echo

我有一个运行在Windows系统上的Jenkins CI服务器,现在我想为我的管道设置全局环境变量

我尝试了两种不同的方法都没有成功:

node {
    environment {
        MY_PYTHON='D:\ProgramData\Anaconda3'
        PATH='%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%'
    }
    stage ('Checkout and Build') {
        bat 'echo %MY_PYTHON%'
        bat 'echo %PATH%'
        bat 'python --version'
    }
}
启动生成后,将抛出以下错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:

WorkflowScript: 3: unexpected char: '\' @ line 3, column 22.

           MY_PYTHON='D:\ProgramData\Anaconda3'

                        ^
有点直截了当,所以我试着像这样加倍反斜杠:

environment {
    MY_PYTHON='D:\\ProgramData\\Anaconda3'
    PATH='%MY_PYTHON%;%MY_PYTHON%\\Scripts;%PATH%'
}
node {
    environment {
        MY_PYTHON='D:\ProgramData\Anaconda3'
    }
    stage ('Checkout and Build') {
        bat '''
            set PATH = "%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%"
            echo %MY_PYTHON%
            echo %PATH%
            python --version
        '''
    }
}
因此,在重新启动构建之后,我只得到了命令
python的错误--version
as
python
仍然无法在路径上找到,而且我没有得到
MY_python
的任何结果,对于
path
我得到了所有预先定义的路径,除了我想要添加的路径

我被卡住了,所以任何帮助都将不胜感激

environment {
    MY_PYTHON='D:\ProgramData\Anaconda3'
    PATH='%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%' <----
}
(我不是python开发人员,因此我不确定该路径是否正确)

我还注意到,您可以使用如下变量:

  • bat'echo变量:%VARIABLE\u NAME%'
    (我不是python开发人员,因此我不确定该路径是否正确)

    我还注意到,您可以使用如下变量:


    • bat'echo var:%VARIABLE\u NAME%'
      尝试:MY\u PYTHON='D:\\ProgramData\\Anaconda3'

      尝试:MY\u PYTHON='D:\\ProgramData\\Anaconda3'

      要展开变量,必须使用双引号:

      PATH="${MY_PYTHON};${MY_PYTHON}\Scripts;${PATH}"
      
      不管怎样,在windows中设置路径似乎特别有问题,因为“PATH”也是一个命令

      你要做的是这样的:

      environment {
          MY_PYTHON='D:\\ProgramData\\Anaconda3'
          PATH='%MY_PYTHON%;%MY_PYTHON%\\Scripts;%PATH%'
      }
      
      node {
          environment {
              MY_PYTHON='D:\ProgramData\Anaconda3'
          }
          stage ('Checkout and Build') {
              bat '''
                  set PATH = "%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%"
                  echo %MY_PYTHON%
                  echo %PATH%
                  python --version
              '''
          }
      }
      

      要展开变量,必须使用双引号:

      PATH="${MY_PYTHON};${MY_PYTHON}\Scripts;${PATH}"
      
      不管怎样,在windows中设置路径似乎特别有问题,因为“PATH”也是一个命令

      你要做的是这样的:

      environment {
          MY_PYTHON='D:\\ProgramData\\Anaconda3'
          PATH='%MY_PYTHON%;%MY_PYTHON%\\Scripts;%PATH%'
      }
      
      node {
          environment {
              MY_PYTHON='D:\ProgramData\Anaconda3'
          }
          stage ('Checkout and Build') {
              bat '''
                  set PATH = "%MY_PYTHON%;%MY_PYTHON%\Scripts;%PATH%"
                  echo %MY_PYTHON%
                  echo %PATH%
                  python --version
              '''
          }
      }
      
      对的这里,
      bat“echo var:$VARIABLE_NAME”
      被解释为Groovy GString,因此由Groovy而不是操作系统进行插值。不过,在Windows上,
      %VARIABLE\u NAME%
      应该使用单引号或双引号。正确!这里,
      bat“echo var:$VARIABLE_NAME”
      被解释为Groovy GString,因此由Groovy而不是操作系统进行插值。不过,在Windows上,
      %VARIABLE\u NAME%
      应使用单引号或双引号。