![如何根据快捷方式目标在任意目录中查找和删除快捷方式?](https://linux22.com/image/1571000/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E5%BF%AB%E6%8D%B7%E6%96%B9%E5%BC%8F%E7%9B%AE%E6%A0%87%E5%9C%A8%E4%BB%BB%E6%84%8F%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%92%8C%E5%88%A0%E9%99%A4%E5%BF%AB%E6%8D%B7%E6%96%B9%E5%BC%8F%EF%BC%9F.png)
如何创建一个批处理文件来搜索所有目录并删除指向特定目的地(如C:\App\Program.exe
)的快捷方式,而不考虑文件名?
答案1
您可能希望首先扫描 *.lnk 文件,然后使用 powershell 函数来彻底检查每个快捷方式。就像这个查看公共桌面文件夹的函数一样,可以在 MS technet 上找到;这不是一个现成的解决方案,但我想您会很乐意这样做。
function Get-DesktopShortcuts{
$Shortcuts = Get-ChildItem -Recurse "C:\users\public\Desktop" -Include *.lnk
$Shell = New-Object -ComObject WScript.Shell
foreach ($Shortcut in $Shortcuts)
{
$Properties = @{
ShortcutName = $Shortcut.Name;
ShortcutFull = $Shortcut.FullName;
ShortcutPath = $shortcut.DirectoryName
Target = $Shell.CreateShortcut($Shortcut).targetpath
}
New-Object PSObject -Property $Properties
}
[Runtime.InteropServices.Marshal]::ReleaseComObject($Shell) | Out-Null
}
$Output = Get-DesktopShortcuts
$Output | Out-GridView