按需更新 Windows 快捷方式

按需更新 Windows 快捷方式

如果我更改文件的位置,其快捷方式路径不会更新,直到我双击该快捷方式。我希望它按需更新大部分路径中的文件(原因:我将文件和文件夹移动到另一台计算机,然后双击快捷方式,它们无法更新,因此它们不起作用)。

我发现快捷方式更新是通过分布式链接跟踪完成的,但不知道如何修复它。

我的操作系统:Windows 10

答案1

我发现观看特性快捷方式并选择Open File Location也会更新目标位置。因此,如果没有找到正确的 API 和一些严肃的编程,我们只能求助于SendKeys()。序列之后SendKeys(),如果在执行之前打开了快捷方式文件夹以供查看,则右键单击快捷方式并查看其特性, 这Target 出现未改变。但这似乎是缓存数据。如果您打开文件夹的“新副本”,则快捷方式Target会更新。根据需要进行编辑并保存 .ps1 文件:

$wshShell = New-Object -ComObject wscript.shell
$Shell    = New-Object -ComObject shell.application

$LnkLocationParent = 'c:\path\to\FolderWithLnkFiles\'

$Shortcuts = gci $LnkLocationParent *.lnk -Recurse

$Shortcuts | ForEach{
    $oFolder = $shell.Namespace($_.DirectoryName)
    $oItem = $oFolder.ParseName($_.Name)
    $oitem.Verbs() | ?{$_.Name -like "P&roperties"} | %{$_.DoIt()}
    Start-Sleep 1
    $wshShell.SendKeys("%F")
    Start-Sleep 1
    $wshShell.SendKeys("%{F4}")
    Start-Sleep 1
    $wshShell.SendKeys("{Enter}")
    Start-Sleep 1
}

相关内容