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

How to copy files in specific location within multiple folders to a shared drive using windows command?

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

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

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 )

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

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

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

测试一下:

 @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