我想使用Powershell更改现有快捷方式的图标。
我玩过它,但我无法设置更改,所以我上网并空手而归。我见过VB和Command Shell的例子,但没有看过Powershell的例子。近99%的人展示了如何创建快捷方式,但我只需要知道如何更改图标和仅图标。
这是我到目前为止所做的:
# Make a copy of the icon in the directory
PS> cd Program Files (x86)\Dir\Fol\
PS Program Files (x86)\Dir\Fol> cp 1234567890.ico 12345678901.ico
# Gets the IconFile property and changes it to the new icon
PS Program Files (x86)\Dir\Fol> cd Desktop\Folder\
PS Desktop\Folder>(Get-Content "file name")[6]
IconFile=C:\Program Files (x86)\Dir\Fol\1234567890.ico
PS Desktop\Folder>(Get-Content "file name")[6] -replace ".ico","1.ico"
我尝试使用WScript.Shell ComObject
但似乎只创建了新的快捷方式。
如果有一种方法可以在对象中保存,更新和应用新的IconFile
路径,我觉得我的目标就行了。
由于图标(或者可能是符号LNK中的某些内容,我执行此操作作为修复操作?)"打破"并默认为通用图标。似乎只是快捷方式的问题。快捷方式工作得很好,一切都很好,但出于某种原因,图标默认。如果我进入并通过GUI重新应用相同的图标名称,它就不会改变。但是,如果我通过任何度量更改.ico文件的名称然后设置它,它就可以工作。不知道为什么会这样做,但我想创建一个自动执行它的PS脚本(而且我正在找借口填写脚本)
答案 0 :(得分:3)
wscript.shell
CreateShortcut
method将创建新的OR,打开现有的快捷方式。这是一个简短的脚本,您需要定义$ShortcutPath
,$IconLocation
和$IconArrayIndex
:
$Shell = New-Object -ComObject ("WScript.Shell")
$Shortcut = $Shell.CreateShortcut($ShortcutPath)
$Shortcut.IconLocation = "$IconLocation, $IconArrayIndex"
$Shortcut.Save()
答案 1 :(得分:2)
我正在编写一个脚本,将默认文件夹图标更改为网络驱动器的图标。这可能对某个地方有帮助。命令是:
$ ShortCut.IconLocation =“C:\ WINDOWS \ system32 \ imageres.dll,28”;
答案 2 :(得分:1)
对我来说。在$ shortcut中不存在.iconlocation并给出错误(可能是powershell版本......)。但是这里是如何将url图标更改为我自定义的图标:(主要部分是添加内容命令)
$WshShell = New-Object -comObject WScript.Shell
$path = "C:\Users\USER\desktop\WEBSITE.url"
$targetpath = "https://WEBSITE.com"
$iconlocation = "C:\Users\USER\Desktop\YourIcon.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"