« 「送る」メニューに「SendToフォルダにショートカットを送る」を作る。 | トップページ | 代替ストリームを除去する。 »

2010年2月20日 (土)

ショートカットをこのフォルダに作成する。

SHIFT+CTRLを押しながらコピーすれば、ショートカットが作れますが、面倒です。
また、CopyHere()メソッドやMoveHere()メソッドはあっても、LinkHere()がない。そこで、

LinkHere.vbs [/] パス...

Set fso=CreateObject("Scripting.FileSystemObject")
Set wShell=CreateObject("WScript.Shell")
If WScript.Arguments.Named.Exists("") Then
  Target=wShell.CurrentDirectory
Else
  Target=fso.GetParentFolderName(WScript.ScriptFullName)
End If
For Each Item In WScript.Arguments.UnNamed
  Set Link=wShell.CreateShortcut(fso.BuildPath(Target,fso.GetFileName(Item) & ".lnk"))
  Link.TargetPath=Item
  Link.Save
Next

引数のパスに対するショートカットをこのフォルダに作成します。
作成先フォルダは、引数に/があれば、カレントディレクトリ、なければスクリプトと同じフォルダです。

スクリプトを「送る」フォルダに置けば、ショートカットをSendToフォルダに送れます。

スクリプトを作成先フォルダに置いて、スクリプトのショートカットを「送る」フォルダに置けば、ショートカットを作成先フォルダに送れます。

スクリプトのアプリのショートカットに作業フォルダを設定して「送る」フォルダに置けば、ショートカットを作業フォルダに送れます。
ただし、このときのリンク先は、以下のようにします。
wscript.exe "フルパス\LinkHere.vbs" /
ここで、もし、スクリプトのショートカットの場合は、
ドロップで作業フォルダが無効になる。
引数が置換される。
なので、スクリプトのアプリのショートカットにします。その場合は、
ドロップで作業フォルダを有効になる。
引数が置換でなく追加される。

« 「送る」メニューに「SendToフォルダにショートカットを送る」を作る。 | トップページ | 代替ストリームを除去する。 »