【发布时间】:2017-03-24 22:01:41
【问题描述】:
透视:此脚本将在用户登录和桌面上带有快捷方式的命令上运行。应用程序启动的顺序是必须的。在整个脚本中,我需要完整路径和程序名称。
问题:每个程序路径都是数组中的一个值。我试图用“\”分割每个程序路径,并获取程序名称的上限。然后 Redim 保留原始数组并在第二维上添加程序。阅读了几个小时后,我意识到我只能改变最后一个维度,但我不知道如何不超出界限错误。这个Creating a Multidimensional, Associative Array in VBScript 不是试图从 For Each 拆分中重新调整保留。
Set objFso = CreateObject("Scripting.FileSystemObject")
'---Create Program Variables
strProgram1 = "%SystemRoot%\notepad.exe"
strProgram2 = "C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE"
strProgram3 = "C:\Program Files\Microsoft Office\root\Office16\ONENOTE.EXE"
strProgram4 = "C:\Program Files (x86)\Internet Explorer\iexplore.exe" & " https://www.google.com" 'IE with URL
'---Add Program Path Variables to an Array
ReDim strProgramList(3)
strProgramList = Array(strProgram1,strProgram2,strProgram3,strProgram4)
strProgramNameList = Array()
strProgramRestartList = Array()
boolNeedsRestart = false
'---Iterating using For each loop to get program name.
ReDim Preserve strProgramList(3, 1)
For Each strProgramPath In strProgramList
strPathComponents = Split(strProgramPath, "\")
strProgramName = strPathComponents(Ubound(strPathComponents))
strProgramList(0, LBound(strProgramList) + 1) = strProgramName
Next
MsgBox strProgramList(0,0) & vbNewLine & strProgramList(1,0) & vbNewLine & strProgramList(2,0) & vbNewLine & strProgramList(3,0) & vbNewLine & strProgramList(0,1) & vbNewLine & strProgramList(1,1) & vbNewLine & strProgramList(2,1) & vbNewLine & strProgramList(3,1)
【问题讨论】:
标签: multidimensional-array vbscript