ショートカットを作成する

ショートカットを作成するスクリプトを書きました。

try{
  # スクリプトが存在するディレクトリを取得
  $base = split-Path -Parent $MyInvocation.MyCommand.Path;

  # 拡張子が「.lnk」のファイルをすべて削除
  remove-item "$base`\*.lnk"

  # 「link.txt」を読み込み、ショートカットを作成する
  $ws = New-Object -com WScript.Shell;
  foreach ($line in (get-content "$base`\link.txt")){
    $s = $line.split(",");
    $lnk = $ws.CreateShortcut($base + "\" + $s[0] + ".lnk");
    $lnk.targetpath = $s[1];
    $lnk.save();
  };

}finally{
  if ($lnk -ne $null){ 
    while([System.Runtime.InteropServices.Marshal]::ReleaseComObject($lnk) -gt 0){}
  };
  if ($ws -ne $null){ 
    while([System.Runtime.InteropServices.Marshal]::ReleaseComObject($ws) -gt 0){}
  };
}

ショートカットを作成したいフォルダに上記のスクリプトを保存します。また、同じフォルダに「link.txt」というファイルを作成します。「link.txt」の中身は以下のように、ショートカットの名前とリンク先を「,」で区切って記載します。

この状態で実行すると、ショートカットが作成されます。

なお、ショートカットを変えたくなった場合は「link.txt」内容を変更してやればよいです。(再実行すると、元あったショートカットは全て削除され、新たにショートカットの作成が行われます。)