ファイルまたはショートカットのアイコンパスを、動的環境変数、特に現在のディレクトリ%cd%を含むパスに設定する方法。
問題は、ファイルにカスタム(非システム)アイコンを設定すると、そのアイコンが他のコンピューターで引き続き使用されることです。ファイルとアイコンの両方が.zipで出荷されます。他のコンピューターで.zipが解凍されている場合、ファイルはカスタムアイコンで表示されます。
Windowsには絶対パスが必要であり、別のコンピューター(絶対位置が異なる)で.zipを解凍すると、このパスが変更されるため、行き詰まります。
GUIの[プロパティ]ウィンドウまたは次のようなPowerShellスクリプトを使用して、成功しませんでした。
$wshshell = New-Object -ComObject WScript.Shell
$lnk = $wshshell.CreateShortcut("c:\TheFolder\ASubFolder\nameOfMyShortcut.lnk")
$lnk.TargetPath = "%windir%\system32\cmd.exe /c start \"\" \"Includes\myApplication.exe\""
$lnk.IconLocation = "%cd%\Includes\myApplication.ico"
#$lnk.IconLocation = ".\Includes\myApplication.ico"
$lnk.Save()
TargetPathをパッケージフォルダーの絶対位置に影響されないようにするトリックがある可能性があります。
問題は、IconLocationパス変数を相対的に設定する方法についてです。両方の暫定的な機能は機能しません。
$lnk.IconLocation = ".\Includes\myApplication.ico"
また
$lnk.IconLocation = "%cd%\Includes\myApplication.ico"
私が理解しているように、環境変数%cd%は動的であり、Windowsはそれを好みません。