web-dev-qa-db-ja.com

JenkinsではWindows Batch Commandを使用して環境変数はどのように使用されますか?

XcopyスクリプトでJenkins(Global)環境変数を使用しようとしています。

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

Jenkinsについては何も知りませんが、何らかの形式の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環境変数とさまざまな拡張オプションに関する詳細情報を取得します。たとえば、検索/置換およびサブストリング操作の実行方法について説明します。

119
dbenham

Windowsでは、%WORKSPACE%を使用する必要があります。

25

Windowsでは、環境変数の展開は%BUILD_NUMBER%です

0