2017-05-07 35 views
0

我在Jenkins版本中運行xcopy。如何xcopy從縱深字符串1開始的所有文件夾?

我有以下目錄結構:

Ensure\ 
    a 
    Web_ERP 
    b 
    c 
    Web_ERP 
    Web_ERP 
    Web_ERP_Claims 
    Web_ERP_Finance 

我想它啓動所有文件夾複製與「Web_ER *」下確保(深度= 1),以我目前的工作空間。

node() { 
    stage ('Setup') { 
     deleteDir() 
     bat ''' 
      IF NOT EXIST c:\\deploy mkdir c:\\deploy 
      cd ..\\Ensure 
      xcopy Web_ER* "%WORKSPACE%" /e 
     ''' 
    } 
} 

在現實中,所有與Web_ER *啓動文件夾正在與Web_ER駐留下的文件夾a和c *文件夾一起復制。

我只想要保留下的Web_ER *文件夾與其內容一起復制。

我試過以下開關xcopy:/我/ e/s/m但我每次都得到相同的結果。

編輯#1:

@magoo當我運行命令你給它會將所有這些都是根據Web_ER的每一個*沒有文件夾本身的文件夾,我想複製所有文件夾中的文件用「Web_ER *」將它們的所有子目錄放到我的目標文件夾中。 以下你的例子我也試過:

for /f "delims=" %%a in ('dir /b /ad web_er*') do xcopy ".\\%%a" "%WORKSPACE%" /e /y 

但無濟於事。

cp -R folder/pattern* destination/dir 

我正在尋找在Windows等效命令:

在linux中,例如它是那麼容易。

我在做什麼錯?

+0

C:\程序文件(x86)\詹金斯\工作空間\確保-發佈> CD .. \確保 C:\程序文件(x86 )\ Jenkins \ workspace \ Ensure> xcopy Web_ER *「C:\ Program Files(x86)\ Jenkins \ workspace \ Ensure-Publish」 0複製文件 –

回答

0
for /f "delims=" %%a in ('dir /b /ad web_er*') do xcopy ".\%%a\*" "%WORKSPACE%" /e 

應該做到這一點。在/b基本(僅限名稱)形式的目錄列表中,處理當前目錄中匹配爲web_er*的目錄名稱的目錄列表,並將每個名稱依次應用於%%a;然後xcopy所有的文件。

+0

不確定OP是否希望將'Web_ER *'文件夾也要複製,但如果是這樣,你需要將它們包含在複製目標中(然後添加選項'/ i')... – aschipfl

0

我最終使用以下powershell命令:

Get-childitem | where {$_.name -like "Web_ER*"} | copy-item -recurse -destination ..\Ensure-Publish -force 
相關問題