如何使用Windows命令将多个文件夹中特定位置的文件复制到共享驱动器?

时间:2015-09-11 13:45:25

标签: windows batch-file cmd robocopy

我需要将多个备份文件复制到共享文件夹

要复制的来源如下所示(中间有其他文件,但对复制它们不感兴趣

C:\BackupLocation\BCK1\Logs\myLog1.log
C:\BackupLocation\BCK1\Logs\myLog2.log
C:\BackupLocation\BCK1\Logs\myLog3.log

C:\BackupLocation\BCK2\Logs\myLog1.log
C:\BackupLocation\BCK2\Logs\myLog2.log
C:\BackupLocation\BCK2\Logs\myLog3.log

C:\BackupLocation\BCK3\Logs\myLog1.log
C:\BackupLocation\BCK3\Logs\myLog2.log

我需要能够复制任何日志文件,其中包含" myLog"在文件名中。

我考虑过做一个For look来获取目录,然后使用robocopy将文件复制到我的共享位置

FOR /d /r %ROOT_SRC_BACKUP_LOCATION% %%G in (*logs*) DO (
 Pushd %%G

 Robocopy %%G "mybackup location directory" *mylog* /S

 Popd )

但问题是logs目录检测到其他日志目录...例如我在这里有另一个日志目录

C:\BackupLocation\BCK3\server\Logs\IDontCareAboutTheLogsIntheServerDirectory.log

复制C:\BackupLocation\BCKXX\Logs\文件夹中所有myLog的最有效方法是什么?

1 个答案:

答案 0 :(得分:2)

测试一下:

 @echo off
 Pushd "C:\BackupLocation"
    for /d %%a in (bck*) do (
       if exist "%%a\logs\" Robocopy "%%a\logs" "d:\mybackup location directory\%%a\logs" "*mylog*.log"
    )
 Popd