Bonjour,

Je galère pour comprendre le script ci dessous. Je n'avais jamais fait de VBA jusqu'à présent !

Mes problèmes commence à la ligne 4.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Option Explicit
Dim fso,strFilename,strSearch,strReplace,objFile,oldContent,newContent
Set fso=CreateObject("Scripting.FileSystemObject")
set objFile=fso.OpenTextFile(WScript.Arguments.Item(0),1)
newContent=replace(objFile.ReadAll,WScript.Arguments.Item(1),WScript.Arguments.Item(2),1,-1,0)
set objFile=fso.OpenTextFile(WScript.Arguments.Item(0),2)
objFile.Write newContent
objFile.Close
Puis il s’exécute via les commandes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
cscript //Nologo "%tmp%\FindReplace.vbs" "%tmp%\uninstaller_temp.txt" ^& \and\
cscript //Nologo "%tmp%\FindReplace.vbs" "%tmp%\uninstaller_temp.txt" ^= \equal\
Ce que j'ai pu comprendre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
' On indique à Visual Basic que toutes les variables utilisées à l'intérieur de ce module devront être préalablement déclarées.
Option Explicit
' Déclaration des variables.
Dim fso,strFilename,strSearch,strReplace,objFile,oldContent,newContent
' Crée un lien objet COM vers FileSystemObject qui permet de manipuler le système de fichiers de Windows et est défini dans la variable fso
Set fso=CreateObject("Scripting.FileSystemObject") 
' Via l'objet FileSystemObject on ouvre un fichier texte . WScript.Arguments.Item(0) retourne le premier paramètre de la ligne de commande soit  "%tmp%\uninstaller_temp.txt", le 1 à la fin représente l'iomode soit "ouverture en lecture" et est défini dans objFile
' Soit j'ouvre le fichier "%tmp%\uninstaller_temp.txt" en lecture
set objFile=fso.OpenTextFile(WScript.Arguments.Item(0),1)
'Recherche une sous-chaîne dans une chaîne de caractères dans tout "%tmp%\uninstaller_temp.txt", en utilisant le second argument de la commande soit "^&" et la remplace par le 3eme argument /and/, commence au premiere caractere, pas de limite de substitution, la comparaison est binaire.
newContent=replace(objFile.ReadAll,WScript.Arguments.Item(1),WScript.Arguments.Item(2),1,-1,0)
Si quelqu’un peut me donner une explication rapide.

Merci.