Bonjour,

Par rapport à mon précédent post d'étude du script de CrapKiller, je souhaite améliorer le processus et automatiser le tout.

Mon problème vient de commande batch "findstr" qui n'est pas assez précise à mon goût. Càd que si je fait une comparaison de la chaîne de caractère "MyPC Backup", il va me ressortir tout ce qui commence par "MyPc" ! Donc dans le cas d'une solution d'automatisation, cela est assez dangereux et peux supprimer de faux positifs. De plus il faut manuellement faire le processus de désinstallation.

Donc mon but étant de lister les applications installées, de comparer cette liste par rapport à une liste des applications à supprimer et que le reste du processus se fasse silencieusement. Le tout avec le petit log qui va bien !

Mon dévolu c'est donc porté sur Revo Uninstaller pro qui permet d'extraire la liste des applications installées et de lancer les commandes de suppressions silencieusement !

Actuellement je suis dans la phase de traitement des données exporté depuis revo uninstaller. Ci dessous mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
' Convertir le fichier d'export de revo uninstaller en ASCII
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const ModeAscii = 0, ModeUnicode = -1
Dim fso, f_in, f_out
Set fso = CreateObject("Scripting.FileSystemObject" )
Set f_in = fso.OpenTextFile("C:\revo_uninstaller_list_app_name_unicode.txt", ForReading,, ModeUnicode)
Set f_out = fso.OpenTextFile("C:\revo_uninstaller_list_app_name_ascii.txt", ForWriting, true, ModeAscii)
Do Until f_in.AtEndOfStream
   f_out.Write f_in.Read(1)
Loop
f_in.Close
f_out.Close
 
' Formattage du fichier pour extraire le nom des applications
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\revo_uninstaller_list_app_name_ascii.txt", ForReading)
 
Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    arrFields = Split(strLine, vbTab)
    arrName = Split(arrFields(0))
    strName = arrName(0)
    strNewContent = strNewContent & Chr(34) & strName & Chr(34) &  "," & vbCrLf
Loop
 
objFile.Close
 
Set objFile = objFSO.CreateTextFile("C:\revo_uninstaller_list_app_name.txt")
 
objFile.Write strNewContent
 
objFile.Close
Le problème vient du fait que quand j’extraie la première colonne de mon fichier texte, il n'extrait que le premier mot et s'arrête au premier espace.

Exemple :
Application"-Tabultation-"Poids
Revo Uninstaller Pro 3.0.8"-Tabulation-"35400 KB

Fichier de sortie
"Application",
"Revo",

Connaissez vous une solution pour extraire le nom en entier et s'arrêter à la première tabulation, et pensez vous que ma démarche est bonne ?

Note "-Tabulation-" représente une vrai "Tabulation"
Merci.