2009-08-26 111 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 \Ž\将不起作用。

相关问题