• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    vbsTree VBS脚本模拟tree命令
    POST TIME:2021-10-18 11:41
    复制代码 代码如下:

    '-------------vbsTree.vbs------------------------
    '描述:用vbs输出一个文件夹的目录结构。
    '------------------------------------------------
    Const Unit4Size = "字节KBMBGB"
    Const OutFile = "OutTree.txt"
    Dim theApp,SelPath,TreePath,TreeStr
    Set theApp = CreateObject("Shell.Application")
    Set SelPath = theApp.BrowseForFolder(0,"请选择需要列出子项目的路径",0)
    If SelPath Is Nothing Then WScript.Quit
    TreePath = SelPath.items.Item.Path
    Set SelPathPath = Nothing
    Set theApp = Nothing
    Dim objFSO
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    TreeStr = TreePath FormatSize(objFSO.GetFolder(TreePath).Size) vbCrLf
    Tree TreePath,""
    Set objFile = objFSO.CreateTextFile(OutFile,True)
    objFile.Write TreeStr
    objFile.Close
    Set objFile = Nothing
    Set objFSO = Nothing
    MsgBox "查看当前目录下的OutTree.txt",vbInformation,"完成 - vbsTree"
    Sub Tree(Path,SFSpace)
    Dim i,TempStr,FlSpace
    FlSpace = SFSpace " "
    Set CrntFolder = objFSO.GetFolder(Path)
    i = 0:TempStr = "├─"
    For Each ConFile In CrntFolder.Files
    i = i + 1
    If i = CrntFolder.Files.Count And CrntFolder.SubFolders.Count = 0 Then TempStr = "└─"
    TreeStr = TreeStr FlSpace Tempstr ConFile.name FormatSize(ConFile.size) vbCrLf
    Next
    i = 0:TempStr = "├─"
    For Each SubFolder In CrntFolder.SubFolders
    i = i + 1
    If i = CrntFolder.SubFolders.Count Then
    TempStr = "└─"
    SFSpace = FlSpace " "
    Else
    SFSpace = FlSpace "│"
    End If
    TreeStr = TreeStr FlSpace TempStr SubFolder.name FormatSize(SubFolder.size) vbCrLf
    Tree SubFolder,(SFSpace)
    Next
    End Sub
    Function FormatSize(SZ)
    Dim i
    Do While SZ > 1024
    i = i + 1
    SZ = SZ \ 1024
    Loop
    FormatSize = " (" SZ Mid(Unit4Size,1 + 2 * i,2) ")"
    End Function

    文件夹浏览部分优化后的代码
    复制代码 代码如下:

    '-------------vbsTree.vbs------------------------
    '描述:用vbs输出一个文件夹的目录结构。
    '------------------------------------------------
    Const Unit4Size = "字节KBMBGB"
    Const OutFile = "OutTree.txt"
    Dim TreePath,TreeStr,WS
    Set WS = WScript.CreateObject("WScript.Shell")
    TreePath = BFF("请选择需要列出子项目的路径",H0001 + H0008 + H0010,"")
    Set WS = Nothing
    If Len(TreePath) = 0 Then WScript.Quit
    If Len(TreePath) = 3 Then MsgBox "无法处理根目录!",64,"提示":WScript.Quit

    Dim objFSO
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    TreeStr = TreePath FormatSize(objFSO.GetFolder(TreePath).Size) vbCrLf
    Tree TreePath,""
    Set objFile = objFSO.CreateTextFile(OutFile,True)
    objFile.Write TreeStr
    objFile.Close
    Set objFile = Nothing
    Set objFSO = Nothing
    MsgBox "查看当前目录下的OutTree.txt",vbInformation,"完成 - vbsTree"
    Sub Tree(Path,SFSpace)
    Dim i,TempStr,FlSpace
    FlSpace = SFSpace " "
    Set CrntFolder = objFSO.GetFolder(Path)
    i = 0:TempStr = "├─"
    For Each ConFile In CrntFolder.Files
    i = i + 1
    If i = CrntFolder.Files.Count And CrntFolder.SubFolders.Count = 0 Then TempStr = "└─"
    TreeStr = TreeStr FlSpace Tempstr ConFile.name FormatSize(ConFile.size) vbCrLf
    Next
    i = 0:TempStr = "├─"
    For Each SubFolder In CrntFolder.SubFolders
    i = i + 1
    If i = CrntFolder.SubFolders.Count Then
    TempStr = "└─"
    SFSpace = FlSpace " "
    Else
    SFSpace = FlSpace "│"
    End If
    TreeStr = TreeStr FlSpace TempStr SubFolder.name FormatSize(SubFolder.size) vbCrLf
    Tree SubFolder,(SFSpace)
    Next
    End Sub
    Function FormatSize(SZ)
    Dim i
    Do While SZ > 1024
    i = i + 1
    SZ = SZ \ 1024
    Loop
    FormatSize = " (" SZ Mid(Unit4Size,1 + 2 * i,2) ")"
    End Function


    Function BFF(title, flag, dir)
    On Error Resume Next
    Dim oShell, oItem, oStr
    Set oShell = WScript.CreateObject("Shell.Application")
    Set oItem = oShell.BrowseForFolder(H0, title, flag, dir)
    oStr = oItem.Title
    If Err > 0 Then
    Set oShell = Nothing
    Set oItem = Nothing
    Exit Function
    End If

    If InStr(oStr, ":") Then
    BFF = mid(oStr,InStr(oStr, ":")-1, 2)
    Else
    Select Case oStr
    Case "桌面"
    BFF = WS.SpecialFolders("Desktop")
    Case "我的文档"
    BFF = WS.SpecialFolders("MyDocuments")
    Case "我的电脑"
    MsgBox "无效目录!",64,"提示":WScript.Quit
    Case "网上邻居"
    MsgBox "无效目录!",64,"提示":WScript.Quit
    Case Else
    BFF = oItem.ParentFolder.ParseName(oItem.Title).Path
    End Select
    End If
    Set oShell = Nothing
    Set oItem = Nothing
    If Right(BFF,1)> "\" Then
    BFF = BFF "\"
    End If
    On Error GoTo 0
    End Function
    上一篇:VBS 强制关闭Symantec Endpoint Protection的代码
    下一篇:Hardware_Info.vbs 获取硬件信息的VBS代码
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信