我在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中的等效命令。
我做错了什么?
答案 0 :(得分:2)
for /f "delims=" %%a in ('dir /b /ad web_er*') do xcopy ".\%%a\*" "%WORKSPACE%" /e
应该做到这一点。处理当前目录中与/b
匹配的目录名/ad
基本(仅限名称)形式web_er*
的目录列表,并将依次找到的每个名称应用于%%a
;然后xcopy
所有文件。