获取VBS文件以扫描计算机中的文件

时间:2014-05-24 08:14:16

标签: vbscript

这是我的第一篇文章,但我已经编程了很长时间

我只是想问一个简短的问题,标题解释了这一切。我希望我的VBS运行一个文件,但我不希望它只搜索一个特定的目录,如果你知道我的意思,我希望它只是找到该文件,因为如果我把脚本给别人,这个文件可以在他们的电脑上任何地方。

这是我用于运行文件的当前几条重要行:

set wshshell = wscript.CreateObject("wscript.shell")

wshshell.run <program directory here>

1 个答案:

答案 0 :(得分:0)

你需要一个像这样的递归函数来搜索快捷方式。

Sub GenerateHotkeyInFolder(Fldr) 
    on error resume next 
    set WshShell = CreateObject("WScript.Shell") 
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set FldrItems=Fldr.Items
    For Each oFile in FldrItems
        With oFile
        If .IsFileSystem = true And .IsLink = true And .Type <> "Shortcut to MS-DOS Program" then
            set lnk = WshShell.CreateShortcut(oFile.Path) 
            If lnk.hotkey <> "" then 
                Set fsop = fso.GetFile(.Path)
                LnkName = "<b>" & fso.GetBaseName(fso.GetFile(.Path)) & "</b><br>" & fsop.ParentFolder.path & "\" & fso.GetBaseName(fso.GetFile(.Path)) & "." & fso.GetExtensionName(fso.GetFile(.Path))
                TableVar = TableVar & "<tr><td><b>" & lnk.hotkey & "</b></td><td><a class=TblURL  onmouseover='MakeRed()' onmouseout='MakeBlack()' onclick='FindShortcut(" & Chr(34) & lnk.fullname & Chr(34) & ")'>" & lnkname & "</a>" & "</td><td><a class=TblURL  onmouseover='MakeRed()' onmouseout='MakeBlack()' onclick='FindShortcut(" & Chr(34) & lnk.targetpath & Chr(34) & ")'>" & lnk.targetpath & "</a></td></tr>" & vbcrlf
            End If 
        ElseIf .IsFileSystem = true And .IsFolder = true then
            GenerateHotkeyInFolder(.GetFolder)
        End If          
        End With
    Next
End Sub