2009-08-26 144 views
2

我想使用VBScript將某些文件夾的內容複製到另一個文件夾。使用VBScript複製文件夾內容

目標是枚舉用戶的AD組,然後根據這些組複製特定的文件夾內容。

我有代碼,目前無法使用。

Dim Group,User,objFSO,objFolder,source,target,StrDomain 

StrDomain = "domain.local" 
FolderBase = "\\domain.local\netlogon\workgrps\icons" 
Set net = CreateObject("wscript.network") 
Struser = net.username 
target = "\\fs1\users\"&net.username&"\Desktop\AppIcons\" 

DispUserInWhichGroup() 

Function DispUserInWhichGroup() 

On Error Resume Next 

Set objFSO=CreateObject("Scripting.FileSystemObject") 
Set User = GetObject("WinNT://" & strDomain & "/" & strUser & ",user") 

For Each Group In User.Groups 

source = FolderBase & Group.name 

Set objFolder = GetFolder(source) 

For Each file in objFolder.Files 
objFSO.CopyFile source &"\"& file.name, target&"\"&file.name 
Next 

Next 

End Function 

這是從各種來源拼湊在一起,我相信大部分是正確的,我不能完全工作。

任何協助將是偉大的。

乾杯。

+0

「不正常工作」你看到了什麼行爲? – 2009-08-26 11:06:29

+0

什麼都沒有。我沒有得到任何錯誤。我可以從使用wscript.echo檢查文件夾路徑獲取一些信息,但我無法獲取文件副本。文件夾中有文件,但似乎沒有發生。 – LukeR 2009-08-26 11:36:12

回答

0

從取出

On Error Resume Next 

線的功能,然後你會看到正在發生的任何錯誤。

編輯:我認爲你需要爲GetFolder指定一個對象。

Set objFolder = objFSO.GetFolder(source) 
+0

太好了。謝謝。現在我得到GetFolder的類型不匹配錯誤。至少我可以弄清楚現在發生了什麼。 – LukeR 2009-08-26 20:11:51

+0

謝謝,我現在正在工作。 – LukeR 2009-08-27 02:03:46

0

嘗試在副本中陳述去除第二\

For Each file in objFolder.Files 
    objFSO.CopyFile source & "\" & file.name, target & file.name 
Next 

你也可以使用文件對象的複製方法,像這樣

For Each file in objFolder.Files 
    file.Copy target & file.name 
Next 
+0

謝謝,但我無法讓它工作。我嘗試了兩個。我甚至無法使用wscript.echo(file.name)在循環內回顯文件名,這讓我覺得我有更大的問題。我希望我有一些錯誤被拋出,至少我會有一些事情要繼續下去。文件夾中肯定有文件,我真的不知道發生了什麼問題。 – LukeR 2009-08-26 12:16:35

0

的目標文件夾不必存在,但它必須被指定:

C:\ Z到C:\ A \ž的工作,但C:\ Z到C:\ A不管用。

,新的文件夾將在文件夾必須存在:

C:\ A必須存在,但C:\ A \ Z不就得了。

尾隨斜線應省略:

C:\ Z到C:\ A \Ž將工作,但C:\Ž\到C:\ A \Ž\將不起作用。

相關問題