如何将文件的图标路径或快捷方式设置为包含动态环境变量的路径,尤其是当前目录 %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 不喜欢它。