如何根据快捷方式目标在任意目录中查找和删除快捷方式?

如何根据快捷方式目标在任意目录中查找和删除快捷方式?

如何创建一个批处理文件来搜索所有目录并删除指向特定目的地(如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

相关内容