Aide à la compréhension d'un petit script
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:
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:
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:
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.
[VBS] Wscript_Killer_Selector.vbs
:salut:
Si vous êtes intéressé sur les "Killers", Je vous présente un "Killer Sélectif de Wscript.exe"
[VBS] Wscript_Killer_Selector.vbs <==> "pondu" dans cette discussion
C'est un nouveau script très intéressant, car tout simplement il peut sélectionner et choisir quel processus Wscript.exe doit-être arrêter tout en mentionnant le chemin et le nom du Vbscript déjà lancé. (Chose que vous ne pouvez pas le faire avec le simple gestionnaire de tâches de windows) :zoubi: :mouarf:
Il peut être intéressant dans le cas ou vous avez plusieurs scripts qui tournent, alors vous pouvez choisir lequel vous allez arrêter et aussi s'il y a processus douteux par exemple un Virus de type vbscript, vous pouvez facilement le localiser (son chemin et son nom) et l'arrêter :mouarf:
Code:
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 34 35 36 37 38 39 40 41 42 43 44 45
| Option Explicit
Dim Titre,Copyright,fso,ws,NomFichierLog,temp,PathNomFichierLog,OutPut,Count,strComputer
Copyright = "[© Hackoo © 2014 ]"
Titre = " Processus "& DblQuote("Wscript.exe") &" en cours d'exécution "
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject( "Wscript.Shell" )
NomFichierLog="Processus WScript.txt"
temp = ws.ExpandEnvironmentStrings("%temp%")
PathNomFichierLog = temp & "\" & NomFichierLog
Set OutPut = fso.CreateTextFile(temp & "\" & NomFichierLog,1)
Count = 0
strComputer = "."
Call Find("wscript.exe")
Call Explorer(PathNomFichierLog)
'***************************************************************************************************
Function Explorer(File)
Dim ws
Set ws = CreateObject("wscript.shell")
ws.run "Explorer "& File & "\",1,True
end Function
'***************************************************************************************************
Sub Find(MyProcess)
Dim colItems,objItem,Processus,Question
Set colItems = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process " _
& "Where Name like '%"& MyProcess &"%' AND NOT commandline like '%" & wsh.scriptname & "%'",,48)
For Each objItem in colItems
Count= Count + 1
Processus = Mid(objItem.CommandLine,InStr(objItem.CommandLine,""" """) + 2) 'Extraction du chemin du script en ligne de commande
Processus = Replace(Processus,chr(34),"")
Question = MsgBox ("Voulez-vous arrêter ce script : "& DblQuote(Processus) &" ?" ,VBYesNO+VbQuestion,Titre+Copyright)
If Question = VbYes then
objItem.Terminate(0)'Tuer ce processus
OutPut.WriteLine DblQuote(Processus)
else
Count= Count - 1 'décrementer le compteur de -1
End if
Next
OutPut.WriteLine String(100,"*")
OutPut.WriteLine count & Titre & "ont été arrêtés"
End Sub
'**********************************************************************************************
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'********************************************************************************************** |