我在县政府机构的IT办公室工作,除其他事项外,我们的任务是为员工成像和设置计算机。我们的一个应用程序提供商为我们的应用程序提供了一个安装程序,在安装后,它会在父文件夹中创建随机文件夹名称。我正在寻找一个VBScript,它将从具有未知子文件夹名称的目录创建.exe的快捷方式,并将其放在Public Desktop文件夹中。我还发现供应商在两个不同的子文件夹中包含了同一个应用程序的两个实例。我只对使用第一个.exe位置的路径感兴趣。我在网上发现了一个剧本,(不幸的是,我不记得我在哪里找到它。所以,我无法赞美写作的人),如果路径已知,则会创建一个快捷方式。我通过添加一些变量并包含更多快捷方式的图标设置来编辑脚本。我对脚本非常陌生,因此,我无法修改此脚本以查找.exe的路径,然后使用该路径创建快捷方式。第一个.exe位于三个子文件夹深,所有三个文件夹都有随机名称。非常感谢任何帮助。
' This script creates a shortcut of MyApp and places it in the Public Desktop folder for all users
Option Explicit
Dim objWSH, objFSO, link, desktopPath, AppPath, IconPath, DirPath
DirPath = "C:\Program Files\MyApp Folder\Randomized1\Randomized2\Randomized3"
IconPath = "C:\Program Files\MyApp Folder\Randomized1\Randomized2\Randomized3\ApplicationIcon.ico"
AppPath = "C:\Program Files\MyApp Folder\Randomized1\Randomized2\Randomized3\MyApp.exe"
Set objWSH = WScript.CreateObject("WScript.Shell")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
desktopPath = "C:\Users\Public\Desktop"
' If file exists define where the shortcut should point to
If objFSO.FileExists(AppPath) Then
set link = objWSH.CreateShortcut(desktopPath & "\MyApp.lnk")
' Define icon settings
link.TargetPath = AppPath
link.IconLocation = IconPath
link.Description = "MyApp"
link.WindowStyle = 2
link.WorkingDirectory = DirPath
link.Save
Else
WScript.Echo "Program file does not exist"
End if
答案 0 :(得分:1)
您应该可以修改它以查找所需的文件。
GetFileList返回FileInformation的1维数组。
Function getFileList(localRoot, fld, ftpArray) Dim fso, f, baseFolder, subFolder, ftpFile, i Set fso = CreateObject("Scripting.Filesystemobject") If IsNull(fld) Then Set baseFolder = fso.GetFolder(localRoot) Else Set baseFolder = fld End If For Each f In baseFolder.Files If IsNull(ftpArray) Then ReDim ftpArray(0) Else i = UBound(ftpArray) + 1 ReDim Preserve ftpArray(i) End If Set ftpFile = New FileInformation ftpFile.setValues localRoot, fso, f Set ftpArray(i) = ftpFile Next For Each subFolder In baseFolder.SubFolders getFileList localRoot, subFolder, ftpArray Next getFileList = ftpArray End Function Class FileInformation Public FilePath Public FolderPath Public FileExtension Public Sub setValues(localRoot, fso, f) FilePath = f.Path FolderPath = f.ParentFolder.Path FileExtension = fso.GetExtensionName(FilePath) End Sub End Class
这将搜索收集的所有FileInformation。
Const localRootFolder = "C:\Program Files\MyApp Folder" Dim filelist, f filelist = getFileList(localRoot, Null, Null) For Each f In filelist Next
答案 1 :(得分:0)
经过更多研究和测试,我决定使用命令行来查找路径。在获得正确的语法之后,它可以完美地运行。我在下面列出了我的最终剧本。我希望这可以帮助别人。我去了Running command line silently with VbScript and getting output?,帮助我在VBScript中使用命令行。然后我找到了这个https://blogs.technet.microsoft.com/heyscriptingguy/2007/11/08/hey-scripting-guy-how-can-i-remove-a-value-from-the-path-environment-variable/,其中显示了如何使用 替换 功能,以便从路径中删除MyApp.exe。然后我将其添加到我的原始脚本中并且它有效。
tsconfig.json