2011-12-22 102 views

回答

92

我對Jenkins一無所知,但它看起來像你試圖使用某種形式的unix語法訪問環境變量 - 這是行不通的。

如果變量的名稱是工作區時,則該值在使用
%WORKSPACE% Windows批處理擴展。這種擴展形式在解析時進行。例如,這將打印如果您在執行時所需要的價值篩選工作區

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 SETSET /?命令行,以獲取有關Windows環境變量和各種擴展選項的詳細信息。例如,它解釋瞭如何執行搜索/替換和子字符串操作。

+1

我完全忘記了關於windows的那個小挑剔的細節。謝謝 ! – JoxTraex

+0

浪費了很多時間在這個謝謝 –

+0

@UtsavGupta 我也被困在這。我早些時候使用了$ BUILD_ID。現在很滿意windows上的%BUILD_ID%。 –

20

在windows中,您應該使用%WORKSPACE%

+0

你的意思是批處理文件... – manojlds

+5

是的。在Hudson的「Build/Command/Execute Windows batch command」字段中。 –

相關問題