パースペクティブ:このスクリプトは、ユーザーのログイン時およびデスクトップ上のショートカットで実行するコマンドで実行されます。アプリケーションの開始順序は必須です。スクリプト全体を通して、完全なパスとプログラム名が必要です。For EachのVBS多次元配列
問題:各プログラムパスは配列内の値です。私は各プログラムのパスを "\"で分割し、上限を取得してプログラム名を取得しようとしています。次に元の配列を保持し、2番目の次元にプログラムを追加します。何時間も読んだ後、私は最後の次元だけを変えることができると理解していますが、縛られていないエラーをどのようにして取り除かないのか分かりません。この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)
[多次元の作成の可能複製、 VBScriptでの連想配列](// stackoverflow.com/q/4588469) – Lankymart