Windows ショートカット作成VBスクリプト

全員のデスクトップのショートカットを揃えたほうが電話でサポートしやすいね、ということで。
VBスクリプトを使ってショートカット作成スクリプトを作ってみた。

使い方は、こんな感じ。

C:\>create-shortcuts.vbs shortcut.conf

create-shortcuts.vbs

'#####################################################
' ショートカット作成スクリプト
' 設定ファイル複数受付版
'#####################################################
Const FOR_READING = 1
Const COL_FOLDER = 0
Const COL_SUB_FOLDER = 1
Const COL_TITLE = 2
Const COL_PATH = 3
Const COL_WORK = 4

Set objArgs = WScript.Arguments
'Wscript.Echo objArgs(0)
'Wscript.Echo objArgs.length

For arg_index = 0 to objArgs.length-1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(objArgs(arg_index), FOR_READING)

Do Until objTextFile.AtEndOfStream
  strNextLine = objTextFile.Readline
  if strNextLine <> "" then
    conf = Split(strNextLine , ",")
    if conf(COL_FOLDER) <> "" then
        Set Shell = CreateObject("WScript.Shell")
        CreatePath = Shell.SpecialFolders(conf(COL_FOLDER))
        if CreatePath = "" then CreatePath = conf(COL_FOLDER)
        if conf(COL_SUB_FOLDER) <> "" then
          CreatePath = CreatePath & "\" & conf(COL_SUB_FOLDER)
          if not objFSO.FolderExists(CreatePath) then
          	objFSO.CreateFolder(CreatePath)
          end if
        end if
        Set link = Shell.CreateShortcut(CreatePath & "\" & conf(COL_TITLE) &".lnk")
        link.Description = conf(COL_TITLE)
        link.HotKey = ""
        link.IconLocation = conf(COL_PATH)
        link.TargetPath = conf(COL_PATH)
        '通常のウインドウ
        link.WindowStyle = 1
        link.WorkingDirectory = conf(COL_WORK)
        args = ""
        For i = COL_WORK+1 to Ubound(conf)
          args = args & " " & conf(i)
        Next
        link.Arguments = args
        ret = link.Save

'デバッグ情報
'        Wscript.Echo "タイトル:" & conf(0)
'        Wscript.Echo "パス:" & conf(1)
'        Wscript.Echo "作業ディレクトリ:" & conf(2)
'        Wscript.Echo "引数:" & args
'        Wscript.Echo ret
    end if
  end if
Loop
Next

shortcut.conf

,********************************************
, カンマで始まる行はコメント行
,********************************************

,カンマで区切って、作成場所、タイトル,パス,作業ディレクトリ,引数1,引数2,引数3,...の順に書いておくと
,作成場所(デスクトップなど)にショートカットを作る

,作成場所に指定できるのは次のものだけ
, AllUsersDesktop
, AllUsersStartMenu
, AllUsersPrograms
, AllUsersStartup
, Desktop
, Favorites
, Fonts
, MyDocuments
, NetHood
, PrintHood
, Programs
, Recent
, SendTo
, StartMenu
, Startup
, Templates

,****************************************************************
, ここからが実際のデータ
,****************************************************************
Programs,,Excel,C:\Program Files\Microsoft Office\Office11\excel.exe,H:\,
Programs,,Word,C:\Program Files\Microsoft Office\Office11\winword.exe,H:\,
Programs,,PowerPoint,C:\Program Files\Microsoft Office\Office11\powerpnt.exe,H:\,
Programs,,Visio,C:\Program Files\Microsoft Office\Visio10\visio.exe,H:\,
Programs,,Access,C:\Program Files\Microsoft Office\Office11\msaccess.exe,H:\,

Desktop,,Excel,C:\Program Files\Microsoft Office\Office11\excel.exe,H:\,
Desktop,,Word,C:\Program Files\Microsoft Office\Office11\winword.exe,H:\,
Desktop,,PowerPoint,C:\Program Files\Microsoft Office\Office11\powerpnt.exe,H:\,
Desktop,,Visio,C:\Program Files\Microsoft Office\Visio10\visio.exe,H:\,
Desktop,,Access,C:\Program Files\Microsoft Office\Office11\msaccess.exe,H:\,