2014-10-21 27 views
0

我旁边的VBS脚本零知识,但我设法凑齐几个一起从一个目录复制到另一个文件,并删除文件在目录中,但我一直无法找到任何具体的东西,我现在。VBScript来用XXX或从目录中的YYY或ZZZ文件拷贝/ s的开始目录乙

我期待写一个VBS脚本执行以下操作 - 复制文件/秒年初XXX或YYY ZZZ或从目录A到B.目录

我已经环顾四周,并不能很找到我要找的,他们似乎都对我的需要过于复杂,涉及最新的日期或分析文件等内的字符串

我敢肯定,这是简单的,但在顶部声明我真的不知道我在做什么,所以任何帮助将不胜感激。

以下是我从一个目录下的所有文件复制到另一个进度条所以修正,这将是巨大的。

Const FOF_CREATEPROGRESSDLG = &H0& 

' copy test 1 to test 2 
strTargetFolder = "C:\test2\" 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.NameSpace(strTargetFolder) 
objFolder.CopyHere "C:\test1\*.*", FOF_CREATEPROGRESSDLG 

回答

0

不确定至今如何在一个大进展指标中得到这个结果。目前它会显示每个文件的进度。

Const FOF_CREATEPROGRESSDLG = &H0& 

strSourceFolder = "C:\test1\" 
strTargetFolder = "C:\test2\" 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objSourceFolder = objFSO.GetFolder(strSourceFolder) 
Set objFiles = objSourceFolder.Files 

Set objShell = CreateObject("Shell.Application") 
Set objTargetFolder = objShell.NameSpace(strTargetFolder) 

For Each objSingleFile in objFiles 
    If (InStr(1,objSingleFile.Name,"xxx",vbTextCompare) = 1) Or _ 
      (InStr(1,objSingleFile.Name,"yyy",vbTextCompare) = 1) Or _ 
      (InStr(1,objSingleFile.Name,"zzz",vbTextCompare) = 1) Then 
     ' The file name starts with one the flagged keywords 
     objTargetFolder.CopyHere objSingleFile.Path, FOF_CREATEPROGRESSDLG 
    End If 
Next 

保持其用于在脚本的末尾使用的实际复制过程的strTargetFolder代码。通过目录c:\test1的所有文件使用FileSystemObjectobjFSO我们循环。然后检查每个文件名,看它是否以3个不同的字符串中的任何一个开头。比较使用vbTextCompare来完成,它基本上使其不区分大小写。如果找到匹配项,则使用您的原始代码,将文件复制到具有进度的目标目录。

目前,这是不会递归地浏览文件所有子文件夹,但你可以做一个递归函数,该函数。

0

使用FileSystemObject组合使用正则表达式:

src = "C:\test1" 
dst = "C:\test2" 

Set fso = CreateObject("Scripting.FileSystemObject") 

Set re = New RegExp 
re.Pattern = "^(XXX|YYY|ZZZ)" 

For Each f In fso.GetFolder(src).Files 
    If re.Test(f.Name) Then f.Copy dst & "\" 
Next 
相关问题