Batch file 如何从深度为1的字符串开始复制所有文件夹?

Batch file 如何从深度为1的字符串开始复制所有文件夹?,batch-file,jenkins,xcopy,Batch File,Jenkins,Xcopy,我在Jenkins构建中运行xcopy 我有以下目录结构: Ensure\ a Web_ERP b c Web_ERP Web_ERP Web_ERP_Claims Web_ERP_Finance 我正在尝试将“确保(深度=1)”下以“Web_ER*”开头的所有文件夹复制到我的当前工作区 node () { stage ('Setup') { deleteDir() bat ''' IF N

我在Jenkins构建中运行xcopy

我有以下目录结构:

Ensure\
  a
    Web_ERP
  b
  c
    Web_ERP
  Web_ERP
  Web_ERP_Claims
  Web_ERP_Finance
我正在尝试将“确保(深度=1)”下以“Web_ER*”开头的所有文件夹复制到我的当前工作区

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*文件夹一起被复制

我只希望位于下的Web_ER*文件夹确保与内容一起复制

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

编辑#1:

@magoo当我运行您给它的命令时,它会复制每个Web\u ER*文件夹下的所有文件,而不复制文件夹本身,我想将所有带有“Web\u ER*”的文件夹及其所有子目录复制到我的目标文件夹。 按照你的例子,我也尝试过:

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

例如,在linux中,它非常简单:

cp -R folder/pattern* destination/dir
我正在windows中寻找等效的命令

我做错了什么

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

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

我最后使用了以下powershell命令:

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

C:\Program Files(x86)\Jenkins\workspace\sure Publish>cd..\sure C:\Program Files(x86)\Jenkins\workspace\sure>xcopy Web\u ER*“C:\Program Files(x86)\Jenkins\workspace\sure Publish”0个文件已复制不确定OP是否也要复制
Web\u ER*
文件夹,但如果是这样,您需要将它们包括在复制目标中(然后添加选项
/i
)。。。