好的,这是我的问题。我正在做一个登录脚本,它基本上将 Microsoft Word 模板从服务器路径复制到每台计算机的本地路径。这是通过检查组成员身份来完成的。
If MemberOf(ObjGroupDict, "g_group1") Then
oShell.Run "%comspec% /c %LOGONSERVER%\SYSVOL\mydomain.com\scripts\ROBOCOPY \\server\Templates\Group1\OFFICE2003\ " & TemplateFolder & "\" & " * /E /XO", 0, True
End If
之前我使用了robocopy的/MIR开关,非常棒。但是,如果用户是多个组的成员,则 /MIR 开关会从第一个组中删除内容,因为它正在镜像第二个组中的内容。意思是,我不能同时拥有这两个内容。
这可以通过不使用 /MIR 开关来“解决”,而只是让内容被复制。但是将模板放在服务器上的整个想法是让我可以控制用户通过脚本接收的内容。因此,如果我从服务器路径中删除文件或文件夹,则不会在本地计算机上复制。因为我不再使用 /MIR 开关了。理解?
那么,我该怎么办?我做了一个小脚本,基本上检查文件夹和文件,然后相应地删除它们,但这实际上最终与 /MIR 开关具有相同的功能。我该如何解决这个问题?
编辑:我发现我真正需要的是一个例程,它扫描我的本地模板文件夹中的文件和文件夹,并检查任何源模板文件夹中是否存在相同的结构。
服务器模板文件夹设置如下:
\\fileserver\templates\group1\
\\fileserver\templates\group2\
\\fileserver\templates\group3\
\\fileserver\templates\group4\
\\fileserver\templates\group5\
\\fileserver\templates\group6\
进行复制的脚本是这样的结构(伪):
If User is MemberOf (group1) Then
RoboCopy.exe \\fileserver\templates\group1\ c:\templates\workgroup *.* /E /XO
End if
If User is MemberOf (group2) Then
RoboCopy.exe \\fileserver\templates\group2\ c:\templates\workgroup *.* /E /XO
End if
If User is MemberOf (group3) Then
RoboCopy.exe \\fileserver\templates\group3\ c:\templates\workgroup *.* /E /XO
End if
等等 使用 /E 开关,我确保它也复制子文件夹。并且 /XO 开关只复制比我的本地路径中的文件和文件夹新的文件和文件夹。但它不考虑本地路径是否包含服务器模板路径上不存在的文件或文件夹。
因此,复制完成后,我想检查我的 c:\templates\workgroup 上的任何文件或文件夹是否确实存在于任一源中。如果他们不这样做,请将它们从我的本地路径中删除。也许可以在这些成员检查中组合一些东西?