使用通配符批处理脚本复制文件夹

时间:2015-07-15 21:52:53

标签: batch-file recursion wildcard xcopy

我需要复制一个匹配通配符的文件夹,例如FOLDER_ *。该文件夹将存在其他文件,因此我需要命令将其与其他所有文件隔离。此外,该命令需要以递归方式搜索目录,并仅返回与通配符匹配的FOLDER,其内容保持不变。然后它需要将其复制到另一个文件夹。有任何想法吗?我尝试了很多变种 - 这是我尝试过的最后一件事。

for /D /R %%f in (FOLDER_*) do xcopy %%f %~dp0\TestResults

1 个答案:

答案 0 :(得分:0)

下一个代码段应该复制所有找到的FOLDER_*文件夹,包括其子文件夹,但省略upfolder\upfolder\FOLDER_*之类的所有父文件夹(但是可以对其进行改进以包含它,当然)。
for /F循环dir /b /s /ad(子文件夹的静态列表)而不是for /D /R,因为选项/d /r未被记录。
请注意FOLDER_main\FOLDER_sub1\FOLDER_sub11等递归 操作mkdirxcopy命令仅echo仅用于调试目的:

@echo OFF
for /F "delims=" %%f in ('dir /B /S /AD FOLDER_*') do (
  echo mkdir "%~dp0\TestResults\%%~nxf" 2>NUL
  echo xcopy /S /E /C "%%~ff" "%~dp0\TestResults\%%~nxf\"
)

考虑向xcopy添加更多切换,例如

  • /H也复制隐藏文件和系统文件。
  • /R覆盖只读文件。
  • /Y禁止提示您确认是否要覆盖现有目标文件。