2013-11-04 148 views
2

我试图将一个文件夹的子文件夹复制到其他未知名称的文件夹中。目的是在使用它的所有员工文件夹中备份程序的源文件。如果在雇员文件夹中找不到程序文件夹,则不应执行任何操作。这看起来如下:批处理 - 使用通配符将文件夹复制到多个文件夹

来源:

F:\Users\myFolder\programFolder\Sourcefolder 

目标:

F:\Users\anotherOnesFolder\programFolder\Sourcefolder 

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

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

但是这个通配符似乎不起作用。我在路径的尽头发现了很多通配符,但这不适用于此。

+1

你'xcopy'命令行应该从http://www.xxcopy.com具有改进处理通配符使用'XXcopy'时工作。 – foxidrive

回答

0
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 
    ) 
) 
+0

请提供您建议的更多细节。 – aIKid

+0

对于f:\ Users中的每个目录,如果所选文件夹的名称和扩展名与源文件夹不匹配(为了不将源文件复制到源文件夹),并且目标目录存在(只有在用户拥有文件时才复制),则镜像源达到目标。 –

+0

经过一些修改,完成了这项工作,谢谢!我不得不删除“\文件夹”,使其工作。因此最终(工作)代码行是:for/d %% d in(“F:\ Users \ *”)do(if/i not“%%〜nxd”==“myFolder”if if exists“%%注意:“F:\ Users \ *”在这里显示为错误的。“f:\ ProgramFolder \ Sourcefolder”(robocopy“F:\ Users \ myFolder \ programFolder \ Sourcefolder”“%%〜fd \ programFolder \ Sourcefolder”*/mir)和OP中。它必须是(不含空格)“F:\ Users \ *” – user2944925

0
for /f %a in ('dir /ad /b "F:\Users*"') do (
xcopy F:\Users\myFolder\programFolder\Sourcefolder "%~dpfa\folder\programFolder\Sourcefolder" /e /y 
) 
+0

感谢您的努力!我没有检查这个版本,因为另一个已经解决了我的问题。 – user2944925

相关问题