批处理文件将文件夹复制到所有用户的网络主目录

批处理文件将文件夹复制到所有用户的网络主目录

我想创建一个批处理文件,将文件夹从\\server\folder\subdirectory复制到\\server\users\username\folder。我不想为所有用户写数百行代码。我可以使用更简单的通配符或变量。

到目前为止我已经有了这一点,如果我逐个输入每个用户名,它就可以工作。

robocopy "\\server\folder\subdirectory" "\\server\users\%username%\folder" /e /v /dcopy:t /copy:dat /r:1 /w:1 /A-:SHA /XA:H
copy "\\server\folder\subdirectory\*.docx" "\\server\users\%username%\folder2"

答案1

根据您提供的代码,我相信这是实现您想要的目标的最简单的方法:

@echo off

set "src=\\server\folder\subdirectory"
set "des=\\server\users"

for /d %%A in (%des%\*) do (
    robocopy "%src%" "%%A\folder" /e
    copy "%src%\*.docx" "%%A\folder2"
)

我喜欢使用变量来减少需要更改的内容,并使可能充满路径的行更容易理解。上面你会看到我为源 ( src) 和目标 ( des) 路径设置了变量,并在一个简单的 for 循环中使用了它们。

对于目标 ( /d in %des%\*) 的任何子文件夹,将它们分配给我们的参数%%A,然后在 robocopy 和 copy 脚本中使用该参数。您会看到我没有包含所有 robocopy 标志,但那是为了使示例尽可能简单。希望这对您或其他遇到此问题的人有用。

相关内容