目次
ショートカットアイコンを作成する
ショートカットアイコンはバッチファイルだけでは作ることができません。そこで、VBScriptという別のプログラムを併用して作成していきます。VBScriptをバッチファイルで実行する方法は、「バッチファイルでVBScriptを実行する -やりたいことから検索-」を参照して下さい。
まず、ショートカットを作成するプログラムをVBScriptで作成しましょう。以下のようになります(make_shortcut.vbs)。
1 2 3 4 5 6 |
Set objShell = WScript.CreateObject("WScript.Shell") Set sc = objShell.CreateShortcut(".\folder1\shortcut.lnk") sc.TargetPath = ".\folder2\run.exe" sc.save |
VBScriptのプログラムについては詳しい説明は割愛しますが、3行目の「shortcut.lnk」が作成するショートカット名になります。作成するフォルダのパスも含めて適当に変更して下さい。ここでは、作成するフォルダは「folder1」の下と指定しています。
4行目の「run.exe」がショートカットのリンク先(実行ファイル)です。ここは実行ファイルがある場所を正しく指定しないとエラーとなります。ここでは、「folder2」フォルダの下の「run.exe」を対象としています。
このVBScriptを実行すれば、ショートカットが作成されます。直接「make_shortcut.vbs」ファイルをダブルクリックしても良いですし、バッチファイルから実行したい場合は、以下のコマンドをバッチファイルに書き込みます。
1 2 3 4 |
@echo off rem vbsファイルの実行 cscript make_shortcut.vbs |
「cscript」がvbsファイルを実行するコマンドです。
バッチファイルで設定した変数を使用する
前節では、作成するショートカット名や、リンク先の実行ファイルを直接、vbsファイルに書き込みました。これをバッチファイルで指定することもできます。まずは、バッチファイルを以下のように書き換えましょう。
1 2 3 4 5 6 7 8 9 10 |
@echo off rem ショートカット名を指定 set shortcut_name=.\folder1\shortcut.lnk rem リンク先の実行ファイルを指定 set link_name=.\folder2\run.exe rem vbsファイルの実行 cscript make_shortcut.vbs |
4, 7行目で、変数「shortcut_name」と「link_name」にショートカット名とリンク先の実行ファイル名を代入しました。後は、この変数を「make_shortcut.vbs」内で取得するだけです。
以下に、変数からショートカット名とリンク先の名前を取得するように変更したvbsファイルを示します。
1 2 3 4 5 6 7 8 9 |
Set objShell = WScript.CreateObject("WScript.Shell") shortcut_name = objShell. ExpandEnvironmentStrings("%shortcut_name%") link_name = objShell. ExpandEnvironmentStrings("%link_name%") Set sc = objShell.CreateShortcut(shortcut_name) sc.TargetPath = link_name sc.save |
3, 4行目でバッチファイルで設定した環境変数「shortcut_name」と「link_name」をを取得しています。次に、6, 7行目に直接書いていたのショートカット名とリンク先の実行ファイル名を変数で置き換えています。
これで、バッチファイルからショートカット名とリンク先の実行ファイル名を変更できるようになりました。バッチファイル実行して、ショートカットが作成されるかを確認しましょう。うまくいけば、「folder1」フォルダの中に、「shortcut.lnk」というショートカットが作成されるはずです。
ショートカットアイコンの作業フォルダを設定する
前節に作成したショートカットアイコンのプロパティを確認してみましょう。以下の図のようになっています。
リンク先は指定の場所になっていますが、作業フォルダが空欄になっています。作業フォルダまで指定してショートカットを作成したい場合は、
1 |
sc.WorkingDirectory = [作業フォルダ] |
を使用します。例えば、作業フォルダをデスクトップにしたい場合は、以下のように「make_shortcut.vbs」を編集します。
1 2 3 4 5 6 7 8 9 10 |
Set objShell = WScript.CreateObject("WScript.Shell") shortcut_name = objShell. ExpandEnvironmentStrings("%shortcut_name%") link_name = objShell. ExpandEnvironmentStrings("%link_name%") Set sc = objShell.CreateShortcut(shortcut_name) sc.TargetPath = link_name sc.WorkingDirectory = "C:\Users\COEL-2016-1\Desktop" sc.save |
8行目でショートカットの作業フォルダを指定しています。これを実行して、もう一度ショートカットのプロパティを確認してみましょう。
今度は、作業フォルダが設定してあります。
ショートカットアイコンのアイコン画像を変更する
最後に、ショートカットアイコンの画像を変更するコマンドを紹介します。それには以下のコマンドを使用します。
1 |
sc.IconLocation = [ショートカットアイコン画像の場所] |
[ショートカットアイコン画像の場所]には設定したいアイコン画像の場所を指定します。以下は、「make_shortcut.vbs」にショートカットアイコン画像を指定する行を追加しました。
1 2 3 4 5 6 7 8 9 10 11 |
Set objShell = WScript.CreateObject("WScript.Shell") shortcut_name = objShell. ExpandEnvironmentStrings("%shortcut_name%") link_name = objShell. ExpandEnvironmentStrings("%link_name%") Set sc = objShell.CreateShortcut(shortcut_name) sc.TargetPath = link_name sc.WorkingDirectory = "C:\Users\COEL-2016-1\Desktop" sc.IconLocation = "C:\Users\COEL-2016-1\Desktop\ico\Network.ico" sc.save |
9行目にアイコン画像を指定する行を挿入しています。これを実行すると、ショートカットアイコン画像が指定した画像となります。