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