Как переменные среды используются в Jenkins с командами Windows Batch?
Я пытаюсь использовать переменные окружения Jenkins (Global) в моем xcopy script.
${WORKSPACE} doesn't work
"${WORKSPACE}" doesn't work
'${WORKSPACE}' doesn't work
Ответ 1
Я ничего не знаю о Дженкинсе, но похоже, что вы пытаетесь получить доступ к переменным окружения, используя некоторую форму синтаксиса 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 и различных вариантах расширения. Например, в нем объясняется, как выполнять операции поиска/замены и подстроки.