2016-11-17 59 views
0

我想將文件複製到某個位置,Jenkins用戶將被要求在文本字段中輸入「項目名稱」,該文本字段將作爲環境變量保存,並且批處理文件應該只取第一個字這個環境變量的值在目錄路徑中輸入。只使用環境變量中的第一個單詞。批/ cmd

目前該項目名稱看起來是這樣的:

Proj_1 Something Somethingelse 

當然,這並不工作:

C:\Testfolder\%Project_Name%\Sub\ 

..我只是想「Proj_1」將文件夾訪問(它已經存在),像這樣:

C:\Testfolder\Proj_1\Sub 
Not: C:\Testfolder\Proj_1 Something Somethingelse\Sub\ 

有沒有什麼辦法可以批量做到這一點?任何幫助非常感謝。

謝謝喬丹。

+3

你有兩個選擇。通過抓住前6個字符來對變量進行子字符串。 '%PROJECT_NAME:〜0.6%'。或者如果項目後總會有一個空格,那麼使用FOR/F命令在空格之前獲得變量部分:'FOR/F「標記= 1 delims =」%% G IN(「%Project_Name% )設置「var = %% G」' – Squashman

+0

這應該是答案@Squashman – Dvir669

+0

@Squashman請使用答案字段... –

回答

1

這表明@Squashmans在他的評論中的第二個解決方案起作用。

Microsoft Windows [Version 10.0.14393] 
(c) 2016 Microsoft Corporation. All rights reserved. 

C:\Users\SBeeson>set "Project_Name=Test Folder Test" 

C:\Users\SBeeson>echo %Project_Name% 
Test Folder Test 

C:\Users\SBeeson>FOR /F "tokens=1 delims= " %G IN ("%Project_Name%") do set "folder=%G" 

C:\Users\SBeeson>echo %folder% 
Test 

唯一的區別是在%G%由於它在命令環境中直接測試。正如他所說,你需要%%G作爲bat文件。

所以,你的解決方案是:

FOR /F "tokens=1 delims= " %%G IN ("%Project_Name%") do set "New_Folder=%%G"