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

Я пытаюсь использовать переменные среды Jenkins (Global) в моем сценарии xcopy.

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

2 ответа

Решение

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

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

Я должен это В Windows расширение переменной среды составляет%BUILD_NUMBER%

Другие вопросы по тегам