好吧,這是我的問題。 我正在做一個logonscript,基本上從服務器路徑將Microsoft Word模板複製到每臺計算機的本地路徑。這是通過檢查組成員身份來完成的。Vbscript - 創建一個鏡像多組文件夾的腳本
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開關。 Comprende?
那麼,我該怎麼辦? 我做了一個小腳本,基本上檢查文件夾和文件,然後相應地刪除它們,但實際上這最終與/ 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中的任何文件或文件夾是否實際存在於任何一個源中。如果他們不這樣做,請從我的本地路徑中刪除它們。可能會在這些成員中加入某些東西?
您對此有何看法?除非您爲多個組的用戶設置特殊模板路徑,否則您需要每個組合的路徑。每個組將總是覆蓋前一組,您可能需要更復雜的解決方案。 – Tester101 2010-05-21 14:28:00
如果您完全清除用戶模板目錄,然後將每個組模板複製到那裏位置,該怎麼辦?這可能需要更多的時間,因爲您每次都做一個完整的副本,但至少您會始終擁有正確的文件。 – Tester101 2010-05-21 14:32:39
嗨,後者是我今天實際使用的方法,需要更新:)我需要一個更復雜的解決方案。這基本上就是我現在的想法。 – 2010-05-24 17:24:21