当前位置: 首页 > 面试题库 >

使用Windows Batch Command在Jenkins中如何使用环境变量?

慕弘深
2023-03-14
问题内容

我正在尝试在xcopy脚本中使用 Jenkins(全局)环境变量

${WORKSPACE} doesn't work
"${WORKSPACE}" doesn't work
'${WORKSPACE}' doesn't work

问题答案:

我对Jenkins一无所知,但似乎您正在尝试使用某种形式的Unix语法访问环境变量-无法正常工作。

如果变量的名称为WORKSPACE,则在Windows批处理中使用扩展该值
%WORKSPACE%。这种扩展形式是在解析时执行的。例如,这将打印以筛选WORKSPACE的值

echo %WORKSPACE%

如果在执行时需要该值,则需要使用延迟扩展!WORKSPACE!。默认情况下,通常不启用延迟扩展。使用SETLOCAL EnableDelayedExpansion来启用它。通常需要延迟扩展,因为括号,和/或由&&&或串联的多个命令中的代码块会||一次全部解析,因此,除非您使用延迟扩展,否则以后无法读取同一块中分配的值。

setlocal enableDelayedExpansion
set WORKSPACE=BEFORE
(
  set WORKSPACE=AFTER
  echo Normal Expansion = %WORKSPACE%
  echo Delayed Expansion = !WORKSPACE!
)

上面的输出是

Normal Expansion = BEFORE
Delayed Expansion = AFTER

使用HELP SETSET /?从命令行获取有关Windows环境变量和各种扩展选项的更多信息。例如,它说明了如何执行搜索/替换和子字符串操作。



 类似资料:
  • 我希望能够在docker compose中使用env变量。yml,值在docker compose up时传入。这就是一个例子。 我今天用基本的docker run命令来做这件事,它包含在我自己的脚本中。有没有一种方法可以在没有任何bash包装器的情况下用compose实现它?

  • 问题内容: 我希望能够在docker-compose.yml中使用env变量,并在docker-compose时传入值。这就是例子。我今天使用基本的docker run命令来执行此操作,该命令包装在我自己的脚本中。没有任何这样的bash包装器,有没有办法通过compose实现它? 问题答案: 创建一个,这是您的with环境变量。 假设您的环境变量在文件“ env.sh”中 将以下代码放入sh文件中

  • 问题内容: 我认为这是另一个简单的问题,但是我无法使用任何Web解决方案。我的项目有一个版本号。每个数字都可以用“。”分隔。或“ _”。我想要一个仅显示前两个数字的变量。 我尝试编写一个普通的脚本来创建Jenkins环境变量。 我想使用前两位数字而不是整个字符串。 我是否正确执行此操作,甚至可以创建一个新的环境变量,并且对此有更好的解决方案吗? 问题答案: 以下groovy片段应传递版本(如您所提

  • 问题内容: 如何使用变量配置Web服务器(Linux服务器)? 如何设置使用? 问题答案: 是一些服务器和其他Java应用程序附加到执行命令的调用的标准环境变量。 例如在tomcat中,如果您定义,启动脚本将执行 如果您在Linux / OSX上运行,则可以在调用启动脚本之前通过执行以下操作来设置JAVA_OPTS: 只要打开控制台,此操作将一直持续。要使其更永久,可以将其添加到〜/ .profi

  • 问题内容: 我一直在阅读官方文档,但无法找到有关环境变量的任何信息。显然,有一些社区项目支持环境变量,但这对我来说可能是过大了。所以我想知道在使用Vue CLI创建的项目上是否有一些简单的开箱即用的功能可以正常工作。 例如,我可以看到,如果执行以下操作,则会打印出正确的环境,这意味着已经设置好了吗? 我对环境变量和Node有点陌生。 仅供参考,使用Vue CLI 3.0 beta版。 问题答案:

  • 最佳实践最好在values.yaml文件中定义环境变量还是在templates/deployment.yaml放入中定义环境变量? 如果有您使用的示例应用程序,您能提供帮助吗?