概要
ユーザー権限で作成・削除が可能なショートカット(リンク)を作成する。
使用例:exe化したポータブルアプリでスタートアップへの登録。
方法
PowerShellのショートカット作成コマンドをchild_process.exec
から実行する。
ショートカットなので、ファイルでもディレクトリでもリンクが作成可能。
削除する場合は、fs.unlink
でショートカットのlnkファイルを削除すればよい。
code.ts
import { exec } from "child_process"
// 作成したいショートカットのパス (末尾の.lnkが必要)
let dist = "C:\\path\\to\\shortcut.lnk"
// リンク元としたいディレクトリorファイルパス
let source = "C:\\path\\to\\target"
// ショートカット作成コマンド
let command = `
$WshShell = New-Object -ComObject WScript.Shell;
$ShortCut = $WshShell.CreateShortcut("${dist}");
$ShortCut.TargetPath = "${source}";
$ShortCut.Save();
`
// 第2引数でPowershellを指定して実行
exec(command, {"shell":"powershell.exe"})
その他のプロパティ
TargetPath
以外にも、WshShortcutオブジェクトの各種プロパティ(ホットキー, 作業フォルダ等)を設定できるようだ。
WshShellオブジェクトの詳細(2) - @IT - ITmedia
参考サイト
ショートカット(lnk)の作成 - yanor.net/wiki
Using PowerShell to Create a Shortcut - ComputerPerformance