在 Windows 批处理中,如何使用 robocopy 复制按命名条件选择的多个文件夹?

In Windows batch, how do I copy multiple folders selected by a naming criteria with robocopy?

我想使用 robocopy 根据文件夹名称前几个字符的相似性来复制多个目录。 我如何挑选出某些目录名称(可能使用正则表达式?)和某种循环,以便在复制目录及其内容时避免这种可怕的冗余? 中的程序员每次复制粘贴这3行并手动修改文件夹名称时,我都会死一点。

set "src=C:\Users\MyName\Photos15-10-25"
set "dest=E:\ExtBackup15-photo-backup15-10-25"
robocopy "%src%" "%dest%"
set "src=C:\Users\MyName\Photos15-10-13"
set "dest=E:\ExtBackup15-photo-backup15-10-13"
robocopy "%src%" "%dest%"
set "src=C:\Users\MyName\Photos15-10-02"
set "dest=E:\ExtBackup15-photo-backup15-10-02"
robocopy "%src%" "%dest%"

规则

@echo off
setlocal

set "src=C:\Users\MyName\Photos"
set "dest=E:\ExtBackup15-photo-backup\"

rem List every folders (/ad) that start with 2015-10 by using *
for /f "delims=" %%a in ('dir /b /ad "%src%15-10*"') do (
  rem copy each folder to destination
  echo robocopy "%%~a" "%dest%"
)

如果测试正常,请不要忘记删除 echo
注意:如果您需要复制子目录、移动或任何与 robocopy 相关的内容,请参阅此 page