2017-04-21 11 views
-1

我看着幾個網站也有類似的問題,但沒有適用於我的情況。據我所知,vbscript是做我要找的最好的方法,但我對vbscript很少有經驗,也不知道如何得到我想要的。我使用的是Windows 10如何使用腳本來設置一個快捷方式圖標

假設有一個名爲Example一個例子快捷鍵,位於F:\File\SubFile\。在SubFile文件夾內有更多的文件夾,F:\File\SubFile\PrgmFiles\Icons\。在Icons之內有一個文件,Icon.ico。快捷方式Example有圖標:Icon.ico。但是,文件夾SubFile已移到未知位置*\SubFile。該快捷方式失去它的圖標,因爲路徑已更改,但不是圖標的相對路徑。

我想知道的是如何製作一個腳本,將其當前位置,*\SubFile,並將Icon.ico應用於示例快捷方式。

回答

0

.lnk文件可以存儲到其目標的相對路徑,但它不支持相對圖標的路徑。

它支持正常絕對圖標路徑和滑動路徑可以任選地通過可膨脹的環境變量(SLDF_HAS_EXP_ICON_SZ)的路徑被重寫。

+0

但這是如何應用到我的情況?看來你說它只支持特定的路徑。我正在尋找的是一種使用正在使用的腳本路徑的方法,然後對其進行擴展。像批處理一樣:'cd%〜dp0 \ PrgmFiles \ Icons',這隻允許我編輯快捷方式的圖標屬性。 – MainframeHacker

+0

圖標路徑與.lnk無關,不支持相對圖標路徑! – Anders

+0

所以......你的回答並不回答我的問題......那麼,如果你不知道答案,你爲什麼回答它? – MainframeHacker

0

當你/有人移動/李子與重要信息的路徑,這是不是一種編程相關的問題和題外話這裏。儘管如此:

  • 修復.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\ 
+0

我只是舉例說明情況,所以我可以在未來的情況下以及當前的情況下使用代碼。在引發我問這個問題的情況下,程序位於便攜式驅動器上,而當插入其他計算機時,驅動器的標籤不同。如在計算機1上是X:驅動器,而在計算機2上是F:驅動器。 – MainframeHacker

+0

如果我去了一個非編程網站並提出這個問題,人們不會知道如何回答我的問題。他們會說,「什麼是vbscript?」 「這是一個編程相關的問題,在這裏脫離主題!「當我在尋找能夠自動設置快捷方式圖標的腳本的腳本時,無論它的位置如何,我都相信這需要一些編程技巧。 – MainframeHacker

相關問題