

@echo off

 >%temp%\lnk.vbs echo WScript.Echo "Shortcut :" ^& WScript.Arguments(0)
>>%temp%\lnk.vbs echo Set oLnk=GetObject( _
>>%temp%\lnk.vbs echo "winmgmts:/root/cimv2:Win32_ShortcutFile." ^& _
>>%temp%\lnk.vbs echo "Name='" ^& WScript.Arguments(0) ^& "'")
>>%temp%\lnk.vbs echo WScript.Echo "Target   :" ^& oLnk.Target
>>%temp%\lnk.vbs echo WScript.Quit( _
>>%temp%\lnk.vbs echo LCase(oLnk.Target)=LCase(WScript.Arguments(1)))
for /f "tokens=*" %%i in ('dir /b /s *.lnk') do (
  cscript //nologo %temp%\lnk.vbs "%%i" "%1"
  if not errorlevel 0 del /f "%%i" & echo *deleted*
  echo.
)
del %temp%\lnk.vbs



goto :eof
=================================================
 --- DeleteShortcuts.cmd ---
script pour rechercher & supprimer des fichiers dans une arborescence les
raccourcis ( fichiers avec l'extension lnk) dont la cible est un fichier exécutable précis
http://groups.google.com/group/microsoft.public.fr.scripting/msg/0d1bb03420abc2b0
Réponse par Gilles LAURENT
+++ Usage :
\> DeleteShortcuts.cmd <target>
+++ Exemple :
\> DeleteShortcuts.cmd "c:\dossier\prog.exe"
=================================================
%temp%\lnk.vbs ==>
WScript.Echo "Shortcut :" & WScript.Arguments(0)
Set oLnk=GetObject( _
"winmgmts:/root/cimv2:Win32_ShortcutFile." & _
"Name='" & WScript.Arguments(0) & "'")
WScript.Echo "Target   :" & oLnk.Target
WScript.Quit( _
LCase(oLnk.Target)=LCase(WScript.Arguments(1)))
=================================================
TEST :

E:\bidon>DeleteShortcuts.cmd D:\Programs\AIDA32\aida32.exe
Shortcut :E:\bidon\toto.lnk
Target   :D:\Programs\AIDA32\aida32.exe
*deleted*

Shortcut :E:\bidon\Nouveau dossier\titi.lnk
Target   :D:\Programs\AIDA32\aida32.exe
*deleted*


E:\bidon>

