如果我更改文件的位置,其快捷方式路径不会更新,直到我双击该快捷方式。我希望它按需更新大部分路径中的文件(原因:我将文件和文件夹移动到另一台计算机,然后双击快捷方式,它们无法更新,因此它们不起作用)。
我发现快捷方式更新是通过分布式链接跟踪完成的,但不知道如何修复它。
我的操作系统: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
}