Ich versuche, Jenkins (Global) -Umgebungsvariablen in meinem xcopy-Skript zu verwenden.
${WORKSPACE} doesn't work
"${WORKSPACE}" doesn't work
'${WORKSPACE}' doesn't work
Antworten:
Ich weiß nichts über Jenkins, aber es sieht so aus, als würden Sie versuchen, mit einer Unix-Syntax auf Umgebungsvariablen zuzugreifen - das wird nicht funktionieren.
Wenn der Name der Variablen WORKSPACE lautet, wird der Wert im Windows-Batch mit erweitert
%WORKSPACE%
. Diese Form der Erweiterung wird zur Analysezeit durchgeführt. Dies wird beispielsweise gedruckt, um den Wert von WORKSPACE anzuzeigen
echo %WORKSPACE%
Wenn Sie den Wert zur Ausführungszeit benötigen, müssen Sie die verzögerte Erweiterung verwenden !WORKSPACE!
. Die verzögerte Erweiterung ist normalerweise nicht standardmäßig aktiviert. Verwenden Sie SETLOCAL EnableDelayedExpansion
, um es zu aktivieren. Verzögerte Expansion ist oft , weil Code - Blöcke benötigt in Klammern und / oder mehr Befehle verkettet durch &
, &&
oder ||
alle auf einmal analysiert, so dass ein Wert innerhalb des Blockes zugewiesen kann später nicht mehr in demselben Block gelesen werden , wenn Sie verzögert Expansion verwenden.
setlocal enableDelayedExpansion
set WORKSPACE=BEFORE
(
set WORKSPACE=AFTER
echo Normal Expansion = %WORKSPACE%
echo Delayed Expansion = !WORKSPACE!
)
Die Ausgabe der oben genannten ist
Normal Expansion = BEFORE
Delayed Expansion = AFTER
Verwenden Sie HELP SET
oder SET /?
über die Befehlszeile, um weitere Informationen zu Windows-Umgebungsvariablen und den verschiedenen Erweiterungsoptionen zu erhalten. Beispielsweise wird erläutert, wie Such- / Ersetzungs- und Teilzeichenfolgenoperationen ausgeführt werden.
In Windows sollten Sie verwenden %WORKSPACE%
.
Ich sollte dies tun Unter Windows ist die Erweiterung der Umgebungsvariablen% BUILD_NUMBER%