通过批处理获取.lnk快捷方式目标路径并实现定向删除
批处理获取LNK快捷方式目标路径并删除指定快捷方式
.lnk是二进制格式的快捷文件,和纯文本的.url文件结构完全不同,所以直接修改原.url的解析脚本无效。下面用批处理+VBScript的组合方案,可靠读取lnk的目标路径并匹配删除:
实现步骤
- 创建批处理文件(命名为
CleanTargetLNKs.bat):
@echo off setlocal enabledelayedexpansion :: 替换为你需要匹配的目标程序路径 set "TARGET_PATH=C:\Program Files\UnwantedSoftware\run.exe" :: 当前用户桌面路径,如需处理公共桌面,改为 set "DESKTOP=%PUBLIC%\Desktop" set "DESKTOP=%USERPROFILE%\Desktop" :: 遍历桌面所有.lnk快捷方式 for %%F in ("%DESKTOP%\*.lnk") do ( :: 调用VBS获取该快捷方式的目标路径 for /f "delims=" %%T in ('cscript //nologo get_lnk_target.vbs "%%F"') do ( :: 匹配目标路径,一致则删除 if "%%T"=="%TARGET_PATH%" ( echo 已删除:"%%~nxF" del "%%F" /f /q ) ) ) echo 处理完成 pause exit /b
- 创建VBScript文件(命名为
get_lnk_target.vbs,和批处理放在同一目录):
Set objShell = CreateObject("WScript.Shell") Set objShortcut = objShell.CreateShortcut(WScript.Arguments(0)) WScript.Echo objShortcut.TargetPath
使用说明
- 修改批处理中的
TARGET_PATH为你要定位的程序完整路径 - 运行批处理后,桌面所有指向该目标路径的快捷方式会被自动删除
- 如需处理其他目录的
lnk,修改DESKTOP变量为对应路径即可
内容的提问来源于stack exchange,提问作者Doy Lyster
相关产品推荐
相关产品推荐

