2017-04-21 116 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

相关问题