我想使用Powershell更改现有快捷方式的图标。
我玩过它,但我无法设置更改,所以我上网时两手空空。我见过VB和Command Shell的例子,但没有看到Powershell的例子。近99%的人演示了如何创建快捷方式,但我只需要知道如何更改图标,而且只需要更改图标。
以下是我迄今为止所做的:
# Make a copy of the icon in the directory
PS> cd Program Files (x86)DirFol
PS Program Files (x86)DirFol> cp 1234567890.ico 12345678901.ico
# Gets the IconFile property and changes it to the new icon
PS Program Files (x86)DirFol> cd DesktopFolder
PS DesktopFolder>(Get-Content "file name")[6]
IconFile=C:Program Files (x86)DirFol1234567890.ico
PS DesktopFolder>(Get-Content "file name")[6] -replace ".ico","1.ico"
我尝试过使用WScript.Shell ComObject
,但这似乎只会创建新的快捷方式。
我觉得如果有一种方法可以保存、更新和应用对象中的新IconFile
路径,那么我将使用它。
我这样做是为了修复图标(或者符号LNK中的某些东西?)"断裂"并默认为通用图标的问题。似乎只是快捷方式的问题。快捷方式运行得很好,一切都很好,但出于某种原因,图标是默认的。如果我进入并通过GUI重新应用相同的图标名称,它不会改变。但是,如果我以任何方式更改.ico文件的名称,然后进行设置,它都可以工作。不知道它为什么这么做,但我想创建一个PS脚本,它会自动完成(我在找借口干扰脚本)
wscript.shell
CreateShortcut
方法将创建一个新的或打开一个现有的快捷方式。这里有一个简短的脚本,您需要在其中定义$ShortcutPath
、$IconLocation
和$IconArrayIndex
:
$Shell = New-Object -ComObject ("WScript.Shell")
$Shortcut = $Shell.CreateShortcut($ShortcutPath)
$Shortcut.IconLocation = "$IconLocation, $IconArrayIndex"
$Shortcut.Save()
对我来说。$shortcut中不存在iconlocation,并给出了一个错误(可能是powershell版本…)。但以下是如何将url图标更改为我制作的自定义图标:(主要部分是添加内容命令)
$WshShell = New-Object -comObject WScript.Shell
$path = "C:UsersUSERdesktopWEBSITE.url"
$targetpath = "https://WEBSITE.com"
$iconlocation = "C:UsersUSERDesktopYourIcon.ico"
$iconfile = "IconFile=" + $iconlocation
$Shortcut = $WshShell.CreateShortcut($path)
$Shortcut.TargetPath = $targetpath
$Shortcut.Save()
Add-Content $path "HotKey=0"
Add-Content $path "$iconfile"
Add-Content $path "IconIndex=0"
我正在编写一个脚本,将默认文件夹图标更改为网络驱动器的图标。这可能在某些方面有所帮助。命令是:
$ShortCut。IconLocation="C:\WINDOWS\system32\imageres.dll,28";