當你/有人移動/李子與重要信息的路徑,這是不是一種編程相關的問題和題外話這裏。儘管如此:
- 修復
.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