如何xcopy以深度为1的字符串开头的所有文件夹?

时间:2017-05-07 14:44:00

标签: batch-file jenkins xcopy

我在Jenkins构建中运行xcopy。

我有以下目录结构:

Ensure\
  a
    Web_ERP
  b
  c
    Web_ERP
  Web_ERP
  Web_ERP_Claims
  Web_ERP_Finance

我试图复制所有以" Web_ER *"开头的文件夹。在Ensure(深度= 1)下,到我当前的工作区。

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

实际上,所有以Web_ER *开头的文件夹都会与位于文件夹a和c下的Web_ER *文件夹一起复制。

我只希望将位于Ensure下的Web_ER *文件夹与其内容一起复制。

我用xcopy尝试过以下开关:/ i / e / s / m但每次都得到相同的结果。

编辑#1:

@magoo当我运行你给它的命令时,它复制了每个Web_ER *文件夹下的所有文件而没有文件夹本身,我想复制所有文件夹,用#34; Web_ER *&#34 ;将所有子目录连接到目标文件夹。 按照你的例子,我也尝试过:

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

但无济于事。

在Linux中,例如,它就像:

一样简单
cp -R folder/pattern* destination/dir

我正在寻找Windows中的等效命令。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

应该做到这一点。处理当前目录中与/b匹配的目录名/ad基本(仅限名称)形式web_er*的目录列表,并将依次找到的每个名称应用于%%a;然后xcopy所有文件。

相关问题