Как переменные среды используются в Jenkins с помощью пакетной команды Windows?


Я пытаюсь использовать переменные среды Дженкинса (глобальные) в моем скрипте xcopy.

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

2 ответа:

Я ничего не знаю о Дженкинсе, но похоже, что вы пытаетесь получить доступ к переменным среды, используя какую - то форму синтаксиса unix-это не сработает.

если имя переменной WORKSPACE, то значение расширяется в пакете Windows с помощью
%WORKSPACE%. Эта форма расширения выполняется во время синтаксического анализа. Например, это выведет на экран значение WORKSPACE

echo %WORKSPACE%

Если вам нужно значение во время выполнения, то вам нужно использовать delayed расширение !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 SET или SET /? из командной строки, чтобы получить дополнительную информацию о среде Windows переменные и различные варианты расширения. Например, в нем объясняется, как выполнять операции поиска/замены и подстроки.

в Windows, вы должны использовать %WORKSPACE%.