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

时间:2015-08-06 15:29:23

标签: batch-file command-line-interface command-prompt

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

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

示例:

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

有没有办法可以创建一个类似的脚本:

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

或者有不同/更好的方法吗?

2 个答案:

答案 0 :(得分:1)

只允许在 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%\"
  )
)

答案 1 :(得分:0)

测试:如果您不想复制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
)