使用批处理文件复制特定文件夹和文件

copy specific folders and files using a batch file

我正在尝试创建一个将执行以下操作的批处理文件:

我有多个目录,每个目录中都有一个名为“06-2015”的文件夹。我想创建一个批处理脚本,它将遍历所有这些目录并复制文件夹“06-2015”及其文件而不是其他任何内容。

示例:

C:\Files\Accounts-2015
C:\Files\Sales-2015
C:\Files\IT-2015

有什么方法可以创建一个类似于以下内容的脚本:

xcopy C:\Files\*-2015 C:\Backup\*-2015 /s

或者有 different/better 的方法吗?

测试一下:如果您不想复制 06-2015 内的任何文件夹,请删除 /s 和 /e。

@echo off
for /d /r "c:\files" %%a in (06-2015?) do (
  if /i "%%~nxa"=="06-2015" xcopy "%%a" "C:\Backup\%%~pnxa\" /s/h/e/k/f/c
)

只允许在 last 路径项中使用通配符。

@ECHO OFF
SET "target=06-2015"
IF NOT EXIST c:\backup\%target% MKDIR c:\backup\%target%
FOR /F "delims=" %%G IN ('DIR /B /AD "c:\files"') DO (
  if exist "c:\files\%%G\%target%\" (
    :: create backup directory if necessary
    MKDIR "c:\backup\%%G\%target%\" 2>NUL
    XCOPY /S /E /Y "c:\files\%%G\%target%\" "c:\backup\%%G\%target%\"
  )
)