Wie werden Umgebungsvariablen in Jenkins mit Windows Batch Command verwendet?

73

Ich versuche, Jenkins (Global) -Umgebungsvariablen in meinem xcopy-Skript zu verwenden.

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

Antworten:

136

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 SEToder 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.

Dbenham
quelle
1
Ich habe dieses kleine, wählerische Detail über Fenster total vergessen. Vielen Dank !
JoxTraex
@UtsavGupta Ich war auch dabei fest. Ich habe früher $ BUILD_ID verwendet. Jetzt zufrieden mit% BUILD_ID% unter Windows.
Himanshu Chauhan
27

In Windows sollten Sie verwenden %WORKSPACE%.

Volodymyr Bezuglyy
quelle
6
Ja. Und in Hudsons Feld "Build / Command / Execute Windows Batch Command".
Volodymyr Bezuglyy
0

Ich sollte dies tun Unter Windows ist die Erweiterung der Umgebungsvariablen% BUILD_NUMBER%

Aykut ÇALIŞKAN
quelle