我想创建一个批处理文件,将文件夹从\\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 标志,但那是为了使示例尽可能简单。希望这对您或其他遇到此问题的人有用。