VBS或通配符通过未知目录复制文件

时间:2014-09-10 06:06:56

标签: vbscript wildcard

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.GetFile("c:\temp\abc\123.xml") 
objFile.Copy "c:\programdata\ABC\DEF\XXXXXX\JKL\"

我需要将123.xml移动到\ JKL目录,但XXXXXX可能是100个目标PC上将运行此脚本的任何目录名称(我都不知道) - 如何通配这个目录名称或解决此问题?

1 个答案:

答案 0 :(得分:0)

您可以使用此功能确定"JKL"子文件夹的路径。传入起始/根文件夹以及该文件夹中两层深的子文件夹的名称。

请注意,这将返回找到的匹配strName第一个子文件夹。因此,如果您有多个名为"JKL"的子子文件夹,则可能不是您想要的。

Function GetSubSubFolder(strRoot, strName)

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    For Each objFolder In objFSO.GetFolder(strRoot).SubFolders
        For Each objSubFolder In objFolder.SubFolders
            If StrComp(objSubFolder.Name, strName, vbTextCompare) = 0 Then
                GetSubSubFolder = objSubFolder.Path
                Exit Function
            End If
        Next
    Next

End Function

对于您的实例,函数调用如下所示:

strFolder = GetSubSubFolder("c:\programdata\ABC\DEF", "JKL")

如果函数返回空字符串,则表示找不到子子文件夹。