Windows 批处理-使用通配符将文件夹复制到多个文件夹

Windows 批处理-使用通配符将文件夹复制到多个文件夹,windows,batch-file,Windows,Batch File,我正在尝试将一个文件夹的子文件夹复制到多个名称未知的其他文件夹中。其目的是在使用程序的所有员工文件夹中备份程序的源文件。如果在employees文件夹中找不到programs文件夹,则不应执行任何操作。情况如下: 资料来源: 目标: 所以我的想法是做以下几点: xcopy "F:\Users\myFolder\programFolder\Sourcefolder" "F:\Users\*\programFolder\Sourcefolder" /e /y 但这个通配符似乎不起作用。我在路径的末

我正在尝试将一个文件夹的子文件夹复制到多个名称未知的其他文件夹中。其目的是在使用程序的所有员工文件夹中备份程序的源文件。如果在employees文件夹中找不到programs文件夹,则不应执行任何操作。情况如下:

资料来源:

目标:

所以我的想法是做以下几点:

xcopy "F:\Users\myFolder\programFolder\Sourcefolder" "F:\Users\*\programFolder\Sourcefolder" /e /y

但这个通配符似乎不起作用。我在路径的末尾发现了很多关于通配符的信息,但这在这里并不适用。

当使用改进了通配符处理的
XXcopy
时,您的
xcopy
命令行应该可以工作。请提供您建议的详细信息。对于f:\Users中的每个目录,如果所选文件夹的名称和扩展名与源文件夹不匹配(不将源文件复制到源文件),并且存在目标目录(仅在用户拥有该目录时进行复制),则将源文件镜像到目标文件。只需稍加修改,即可完成此工作,谢谢!我必须删除“\文件夹”才能使其正常工作。因此最后(工作)行代码是:for/d%%d in(“F:\Users*”)do(如果/i不是“%%~nxd”==“myFolder”,如果存在“%%~fd\programFolder\Sourcefolder”(robocopy“F:\Users\myFolder\programFolder\Sourcefolder”“%%~fd\programFolder\Sourcefolder”*/mir))注意:“F:\Users*”在这里和OP中显示错误。它一定是(没有空格)“F:\Users\*”感谢您的努力!我没有检查此版本,因为另一个版本已经解决了我的问题。
for /f %a in ('dir /ad /b "F:\Users*"') do (
 xcopy  F:\Users\myFolder\programFolder\Sourcefolder "%~dpfa\folder\programFolder\Sourcefolder" /e /y
)
xcopy "F:\Users\myFolder\programFolder\Sourcefolder" "F:\Users\*\programFolder\Sourcefolder" /e /y
for /f %a in ('dir /ad /b "F:\Users*"') do (
 xcopy  F:\Users\myFolder\programFolder\Sourcefolder "%~dpfa\folder\programFolder\Sourcefolder" /e /y
)
for /d %%d in ("F:\Users\*") do (
    if /i not "%%~nxd"=="myFolder" if exist "%%~fd\folder\programFolder\Sourcefolder" ( 
        robocopy  "F:\Users\myFolder\programFolder\Sourcefolder" "%%~fd\folder\programFolder\Sourcefolder" * /mir
    )
)