当你/有人移动/李子与重要信息的路径,这是不是一种编程相关的问题和题外话这里。尽管如此:
- 修复
.lnk
文件中损坏的IconLocation的第一步是识别它们。这PowerShell脚本西港岛线做:
$SearchRoot = 'C:\Users\UserName'
$AllLnks = Get-ChildItem -Path $SearchRoot -Rec -Filter *.lnk -Force -EA 0
$Wsh = New-Object -ComObject WScript.Shell
ForEach ($Lnk in $AllLnks) {
$LnkO = $Wsh.CreateShortcut($Lnk.FullName)
if ($LnkO.IconLocation){
$Icon = $LnkO.IconLocation.split(',')[0]
if ($Icon){
if (!(Test-Path $([System.Environment]::ExpandEnvironmentVariables($Icon)))){
$LnkO
}
}
}
}
输出的示例这里不存在图标文件:
FullName : C:\Users\UserName\Desktop\Programm Links\Adobe Reader XI.lnk
Arguments :
Description :
Hotkey :
IconLocation : C:\Windows\Installer\{AC76BA86-7AD7-1031-7B44-AB0000000001}\SC_Reader.ico,0
RelativePath :
TargetPath : C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe
WindowStyle : 1
WorkingDirectory :
FullName : C:\Users\UserName\Desktop\Programm Links\IDLE (Python 3.4 GUI - 32 bit).lnk
Arguments : "C:\Program Files (x86)\Python\34\Lib\idlelib\idle.pyw"
Description :
Hotkey :
IconLocation : C:\WINDOWS\Installer\{CCD588A7-8D55-49F1-A30C-47FAB40889ED}\python_icon.exe,0
RelativePath :
TargetPath : C:\WINDOWS\Installer\{CCD588A7-8D55-49F1-A30C-47FAB40889ED}\python_icon.exe
WindowStyle : 1
WorkingDirectory : C:\Program Files (x86)\Python\34\
但这是如何应用到我的情况?看来你说它只支持特定的路径。我正在寻找的是一种使用正在使用的脚本路径的方法,然后对其进行扩展。像批处理一样:'cd%〜dp0 \ PrgmFiles \ Icons',这只允许我编辑快捷方式的图标属性。 – MainframeHacker
图标路径与.lnk无关,不支持相对图标路径! – Anders
所以......你的回答并不回答我的问题......那么,如果你不知道答案,你为什么回答它? – MainframeHacker