• 締切済み

フォルダ ショートカット

どなたか教えてください。 あるサイトでショートカット作成方法を発見し、作ってみました。 ファイルのショートカットは作成できるのですがフォルダのショートカットがうまくいきません。 どなたか教えていただけませんか。よろしくお願いします。 <?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?> <package> <job id="shortcut"> <?job error="true" debug="true" ?> <object id="objFs" progid="Scripting.FileSystemObject" /> <script language="VBScript"> <![CDATA[ ' ショートカットの情報を記述した設定ファイルの格納場所 ' 設定ファイルのパスについては、各自の環境に合わせて変更する必要がある Const CONFIG="C:\config.dat" Set objTs=objFs.OpenTextFile(CONFIG,1,False) ' config.datの情報に基づいて、ショートカットを作成する ' config.datにはタブ区切りテキスト形式で、ショートカットのファイル名、コメント、リンク先のパス、ホット・キーが定義されているものとする。 Do While Not objTs.AtEndOfStream aryDat=Split(objTs.readLine,Chr(9)) Set objShl=WScript.CreateObject("WScript.Shell") Set objCut=objShl.CreateShortcut(objFs.BuildPath(objShl.SpecialFolders("Desktop"),aryDat(0) & ".lnk")) ' デスクトップ上にショートカットを作成 objCut.Description=aryDat(1) ' コメント objCut.TargetPath=aryDat(2) ' リンク先のパス objCut.Hotkey=aryDat(3) ' ホット・キー(Alt+、Ctrl+、Shift+、Ext+) ' 作業フォルダ(My Documents) 'objCut.WorkingDirectory=objShl.SpecialFolders("MyDocuments")' objCut.Save ' 生成したショートカットを保存 Loop objTs.Close ]]> </script> </job> </package>

みんなの回答

回答No.2

「うまくいかない」 とは? ファイルへのショートカットは正しく作られているということですか? WSF ファイルを実行するユーザーと対象フォルダーへのアクセス権限の関係とかは確認されましたか? 当方 Windows 7 x64 ですが、VBScript にしてみて試したところファイル、フォルダーとも正常にショートカット ファイルが作成されましたよ。ちなみに管理者権限を持っているユーザーで実行しています。 Config.DAT の中身 メモ帳.lnk[TAB]メモ帳[TAB]C:\Windows\System32\notepad.exe[TAB]Ctrl+Alt+A Tools.lnk[TAB]Toolsフォルダー[TAB]D:\Tools[TAB]Ctrl+Alt+B test.vbs の中身 Option Explicit Const CONFIG = "d:\config.DAT" Dim fso, ts Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile(CONFIG, 1, False) Dim aryDat Dim shellObject, shortCutObject Do While Not ts.AtEndOfStream aryDat = Split(ts.ReadLine, Chr(9)) Set shellObject = WScript.CreateObject("WScript.Shell") Set shortCutObject = shellObject.CreateShortcut(fso.BuildPath(shellObject.SpecialFolders("Desktop"), aryDat(0) & ".lnk")) shortCutObject.Description = aryDat(1) shortCutObject.TargetPath = aryDat(2) shortCutObject.Hotkey = aryDat(3) shortCutObject.Save Loop ts.Close

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

上記のままだですと動作確認がとれません。 まず、VBスクリプト部分を別ファイルに抜き出して実験しました。 もしくは Excel のVBエディッタで デバッグもできます。 以下は VBS 部分です。 別ファイルで 「TEST.vbs」という名前で保存してください。 ご希望通りに動作します。(デバッグ済です) ========================================================================== MsgBox "ショートカット作成プログラム" Set objShl = WScript.CreateObject("WScript.Shell") Set OBJfs = CreateObject("scripting.FileSystemObject") LocDeskTOP = objShl.SpecialFolders("Desktop") 'ショートカットの作成場所 LocMYDOC = objShl.SpecialFolders("MyDocuments") '作業フォルダ(My Documents) ' ショートカットの情報を記述した設定ファイルの格納場所 ' 設定ファイルのパスについては、各自の環境に合わせて変更する必要がある Const CONFIG = "C:\config.dat" Set objTs = OBJfs.OpenTextFile(CONFIG, 1, False) ' config.datの情報に基づいて、ショートカットを作成する ' config.datにはタブ区切りテキスト形式で、ショートカットのファイル名、コメント、リンク先のパス、ホット・キーが定義されているものとする。 StrREC = objTs.readLine 'レコードの読み込み Do While Not objTs.AtEndOfStream arydat = Split(StrREC, vbTab) StrCutname = LocDeskTOP & "\" & Trim(arydat(0)) & ".lnk" Set objCut = objShl.CreateShortcut(StrCutname) With (objCut) .Description = arydat(1) ' コメント .TargetPath = arydat(2) ' リンク先のパス .Hotkey = arydat(3) ' ホット・キー(Alt+、Ctrl+、Shift+、Ext+) .WorkingDirectory = objShl.SpecialFolders(LocMYDO) '作業フォルダ(My Documents) MsgBox "ショートカット:" & StrCutname & vbCrLf & _ "コメント:" & arydat(1) & vbCrLf & _ "リンク先のパス:" & arydat(2) & vbCrLf & _ "ホット・キー:" & arydat(3) .Save ' 生成したショートカットを保存 End With StrREC = objTs.readLine Loop objTs.Close ========================================================================== あとは XSLファイルに実装してください。 これで動かなければ XMLおよびXSLのどちらかの問題となります。

関連するQ&A

専門家に質問してみよう