JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Rechercher un fichier donné dans tout le disque C: Mar 15 Nov 2016 - 18:11 | |
| Par exemple un fichier dont on ne sait plus où on l'a mis... une petite sub en vbscript: - Code:
-
SUB RecFile(f$) ' Recherche dans tout le disque C: du fichier f$ (Nom+extension) -> clipboard DIM_LOCAL fscr$,q$,n,nm$,ex$,k%,a$ fscr$ = "Z:\Search.vbs": ' <===== Fichier de manoeuvre, chemin à ajuster q$ = CHR$(34) n = 1990: DLIST n nm$ = f$: ex$ = "" FOR k% = LEN(f$) TO 1 STEP -1 IF MID$(f$,k%,1) = "." THEN nm$ = LEFT$(f$,k%-1): ex$ = RIGHT_POS$(f$,k%+1): EXIT_FOR NEXT k% ' Configuration des variables d'environnement ITEM_ADD n,"Set fso = WScript.CreateObject("+q$+"Scripting.FileSystemObject"+q$+")" ITEM_ADD n,"Set Shell = CreateObject("+q$+"wscript.Shell"+q$+")" ITEM_ADD n,"Set env = Shell.environment("+q$+"Process"+q$+")" ITEM_ADD n,"strComputer = env.Item("+q$+"Computername"+q$+")" ITEM_ADD n,"set objWMIService = GetObject("+q$+"winmgmts:"+q$+" & strComputer & "+q$+"\root\cimv2"+q$+")" a$="set colFiles = objWMIService.ExecQuery ("+q$+"Select * from CIM_DataFile " a$=a$+"Where FileName = 'NNNNN' and Extension = 'XXXXX' and Drive = 'C:'"+q$+")" k% = INSTR(a$,"NNNNN"): a$ = LEFT$(a$,k%-1)+nm$+RIGHT_POS$(a$,k%+5) k% = INSTR(a$,"XXXXX"): a$ = LEFT$(a$,k%-1)+ex$+RIGHT_POS$(a$,k%+5): ITEM_ADD n,a$ ' affichage de la recherche avec une boucle For ITEM_ADD n,"For Each objFile in colFiles" ITEM_ADD n," Wscript.Echo objFile.Drive & objFile.Path & objFile.FileName & "+q$+"."+q$+" & objFile.Extension" ITEM_ADD n,"Next" ' Destruction des objets ITEM_ADD n,"Set fso = Nothing" ITEM_ADD n,"Set Shell = Nothing" ITEM_ADD n,"Set env = Nothing" ITEM_ADD n,"WScript.Quit" FILE_OPEN_WRITE 1,fscr$ FOR k% = 1 TO COUNT(n): FILE_WRITELN 1,ITEM_READ$(n,k%): NEXT k% FILE_CLOSE 1 DELETE n EXECUTE_WAIT "cmd.exe /c cscript.exe "+fscr$+" | clip" FILE_DELETE fscr$ END_SUB Exemple d'appel: RecFile("Lorem.txt") Renvoie dans le presse-papier la liste de toutes les occurences du fichier sur C: avec leur chemin complet. Ça peut être un peu long (chez moi une vingtaine de secondes). | |
|