je voudrais faire un script pour
rechercher & supprimer des fichiers dans une arborescence les
raccourcis ( fichiers avec l'extension lnk)
dont la cible est un fichier ex=E9cutable pr=E9cis
exemple :comment rechercher & supprimer dont la cible est " c:\dossier
\prog.exe"
nom du raccourci : toto.lnk
nom du fichier cible : c:\dossier\prog.exe
nom du raccourci : titi.lnk
nom du fichier cible : c:\dossier\prog.exe
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles LAURENT [MVP]
"Jean-Luc TUAL" a écrit dans le message de news: | Bonjour,
Bonjour,
| je voudrais faire un 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 | | exemple :comment rechercher & supprimer dont la cible est " | c:dossier prog.exe" | | nom du raccourci : toto.lnk | nom du fichier cible : c:dossierprog.exe | | nom du raccourci : titi.lnk | nom du fichier cible : c:dossierprog.exe | | Merci de vos propositions
Ci-dessous le script batch DeleteShortcuts.cmd permettant de répondre à votre besoin. Le script devra être déposé à la racine de l'arborescence dans laquelle vous souhaitez supprimer les raccourcis. La recherche des raccourcis se fera de manière récursive.
+++ Usage : > DeleteShortcuts.cmd <target>
+++ Exemple : > DeleteShortcuts.cmd "c:dossierprog.exe"
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 --- Coupez ici : DeleteShortcuts.cmd ---
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"Jean-Luc TUAL" <jeanluc.tual@gmail.com> a écrit dans le message de
news:a4b61a01-177c-4c08-9624-83475b8dc3d9@l39g2000yqn.googlegroups.com
| Bonjour,
Bonjour,
| je voudrais faire un 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
|
| exemple :comment rechercher & supprimer dont la cible est "
| c:dossier prog.exe"
|
| nom du raccourci : toto.lnk
| nom du fichier cible : c:dossierprog.exe
|
| nom du raccourci : titi.lnk
| nom du fichier cible : c:dossierprog.exe
|
| Merci de vos propositions
Ci-dessous le script batch DeleteShortcuts.cmd permettant de répondre à
votre besoin. Le script devra être déposé à la racine de l'arborescence
dans laquelle vous souhaitez supprimer les raccourcis. La recherche des
raccourcis se fera de manière récursive.
+++ Usage :
> DeleteShortcuts.cmd <target>
+++ Exemple :
> DeleteShortcuts.cmd "c:dossierprog.exe"
"Jean-Luc TUAL" a écrit dans le message de news: | Bonjour,
Bonjour,
| je voudrais faire un 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 | | exemple :comment rechercher & supprimer dont la cible est " | c:dossier prog.exe" | | nom du raccourci : toto.lnk | nom du fichier cible : c:dossierprog.exe | | nom du raccourci : titi.lnk | nom du fichier cible : c:dossierprog.exe | | Merci de vos propositions
Ci-dessous le script batch DeleteShortcuts.cmd permettant de répondre à votre besoin. Le script devra être déposé à la racine de l'arborescence dans laquelle vous souhaitez supprimer les raccourcis. La recherche des raccourcis se fera de manière récursive.
+++ Usage : > DeleteShortcuts.cmd <target>
+++ Exemple : > DeleteShortcuts.cmd "c:dossierprog.exe"
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 --- Coupez ici : DeleteShortcuts.cmd ---
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
moi
bonsoir,
Solution VBS classique ...
Bien sûr le traitement est récurssif dans le répertoire à purger
' ##################################### ' cible du raccourci : CIBLE = "D:DossierTruc.exe" ' Répertoire à purger : REPERTOIRE = "F:Utilisateux"
Set objShell = WScript.CreateObject( _ "WScript.Shell") Set FSO = WScript.CreateObject(_ "Scripting.FileSystemObject")
Set BASE = FSO.GetFolder(REPERTOIRE) Traite BASE Set objShell = Nothing Set FSO = Nothing Wscript.Quit ' ===================================== Sub TRAITE(oDossier) Dim Lien If ODossier.Subfolders.Count > 0 Then For Each SSD in oDossier.Subfolders TRAITE SSD Next End If If oDossier.Files.count > 0 Then For Each FICH in oDossier.Files If FICH.Type = "Raccourci" Then Set Lien = objshell.CreateShortCut(Fich.Path) If Lien.TargetPath = CIBLE Then FSO.DeleteFile Fich.Path , True End If Set Lien = Nothing End If Next End If
End Sub ' ======================================
bonsoir,
Solution VBS classique ...
Bien sûr le traitement est récurssif
dans le répertoire à purger
' #####################################
' cible du raccourci :
CIBLE = "D:DossierTruc.exe"
' Répertoire à purger :
REPERTOIRE = "F:Utilisateux"
Set objShell = WScript.CreateObject( _
"WScript.Shell")
Set FSO = WScript.CreateObject(_
"Scripting.FileSystemObject")
Set BASE = FSO.GetFolder(REPERTOIRE)
Traite BASE
Set objShell = Nothing
Set FSO = Nothing
Wscript.Quit
' ===================================== Sub TRAITE(oDossier)
Dim Lien
If ODossier.Subfolders.Count > 0 Then
For Each SSD in oDossier.Subfolders
TRAITE SSD
Next
End If
If oDossier.Files.count > 0 Then
For Each FICH in oDossier.Files
If FICH.Type = "Raccourci" Then
Set Lien = objshell.CreateShortCut(Fich.Path)
If Lien.TargetPath = CIBLE Then
FSO.DeleteFile Fich.Path , True
End If
Set Lien = Nothing
End If
Next
End If
Bien sûr le traitement est récurssif dans le répertoire à purger
' ##################################### ' cible du raccourci : CIBLE = "D:DossierTruc.exe" ' Répertoire à purger : REPERTOIRE = "F:Utilisateux"
Set objShell = WScript.CreateObject( _ "WScript.Shell") Set FSO = WScript.CreateObject(_ "Scripting.FileSystemObject")
Set BASE = FSO.GetFolder(REPERTOIRE) Traite BASE Set objShell = Nothing Set FSO = Nothing Wscript.Quit ' ===================================== Sub TRAITE(oDossier) Dim Lien If ODossier.Subfolders.Count > 0 Then For Each SSD in oDossier.Subfolders TRAITE SSD Next End If If oDossier.Files.count > 0 Then For Each FICH in oDossier.Files If FICH.Type = "Raccourci" Then Set Lien = objshell.CreateShortCut(Fich.Path) If Lien.TargetPath = CIBLE Then FSO.DeleteFile Fich.Path , True End If Set Lien = Nothing End If Next End If
End Sub ' ======================================
Gilles LAURENT [MVP]
"Jean-Luc TUAL" a écrit dans le message de news: | Bonjour,
Bonsoir,
| je voudrais faire un 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 | | exemple :comment rechercher & supprimer dont la cible est " | c:dossier prog.exe" | | nom du raccourci : toto.lnk | nom du fichier cible : c:dossierprog.exe | | nom du raccourci : titi.lnk | nom du fichier cible : c:dossierprog.exe | | Merci de vos propositions
Et une autre version plus "classique" en VBScript / WMI. La recherche est récursive.
+++ Exemple > cscript DeleteShortcuts.vbs "D:Test" "C:Dossierprog.exe"
--- Coupez ici : DeleteShortcuts.vbs --- sFolder=Replace(WScript.Arguments(0), "", "") sTarget=Replace(WScript.Arguments(1), "", "") Set colLnk=GetObject("winmgmts:/root/cimv2").ExecQuery( _ "SELECT * FROM Win32_ShortcutFile " & _ "WHERE Target='" & sTarget & "' " & _ "AND Name LIKE '" & sFolder & "%'") For Each oLnk In colLnk oLnk.Delete() WScript.Echo oLnk.Name & " [deleted]" Next --- Coupez ici : DeleteShortcuts.vbs ---
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"Jean-Luc TUAL" <jeanluc.tual@gmail.com> a écrit dans le message de
news:a4b61a01-177c-4c08-9624-83475b8dc3d9@l39g2000yqn.googlegroups.com
| Bonjour,
Bonsoir,
| je voudrais faire un 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
|
| exemple :comment rechercher & supprimer dont la cible est "
| c:dossier prog.exe"
|
| nom du raccourci : toto.lnk
| nom du fichier cible : c:dossierprog.exe
|
| nom du raccourci : titi.lnk
| nom du fichier cible : c:dossierprog.exe
|
| Merci de vos propositions
Et une autre version plus "classique" en VBScript / WMI.
La recherche est récursive.
"Jean-Luc TUAL" a écrit dans le message de news: | Bonjour,
Bonsoir,
| je voudrais faire un 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 | | exemple :comment rechercher & supprimer dont la cible est " | c:dossier prog.exe" | | nom du raccourci : toto.lnk | nom du fichier cible : c:dossierprog.exe | | nom du raccourci : titi.lnk | nom du fichier cible : c:dossierprog.exe | | Merci de vos propositions
Et une autre version plus "classique" en VBScript / WMI. La recherche est récursive.