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