@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 +++ 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>