IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Quel langage utiliser pour gerer le registre ! [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut Quel langage utiliser pour gerer le registre !
    Bonjour,

    Je recherche un moyen de supprimer des clé registre en faisant une recherche par nom dans tout le registre (clé,valeurs,données)

    mon but étant de nettoyer le registre en automatique après la désinstallation d'un programme.

    J'ai essayé en .bat mais je n'arrive pas à faire ce que je souhaite (batch trop limité je pense)

    quel langage est le plus approprié pour faire ce que je souhaite ?
    la recherche avancée de "JV16 POWERTOOL" est un exemple de ce que je souhaite mais je ne sais pas en quel langage il est développé.

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut [VBS] RegSearch.vbs : Rechercher dans votre base de Registre et trouver toutes les instances du mot saisi

    Voila j'ai un peu modifié et traduit en français ce Vbscript (Version Originale en anglais par © Bill James)
    Description du Script :
    • Rechercher dans votre base de Registre et trouver toutes les instances du mot saisi.
    • Possibilité de sauvegarder le résultat de recherche avec WordPad.
    • On peut aussi sauvegarder le fichier avec l'extension ".reg", pour l'utiliser afin de restaurer chaque changement de la base de registre que vous faites pour ces valeurs.
    • Ajout d'une barre de Progression en Vbscript + HTA par © Hackoo le 14/09/2013

    Copier et coller ce code dans votre Notepad et enregistrer-le sous le nom RegSearch.vbs, puis exécuter-le
    J'ai prédéfini le mot à rechercher comme JV16 POWERTOOL
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    'Rechercher dans votre base de Registre et trouver toutes les instances du mot saisi.
    'Possibilité de sauvegarder le résultat de recherche avec WordPad.
    'On peut aussi sauvegarder le fichier avec l'extension ".reg", pour l'utiliser afin de restaurer chaque changement de la base de registre que vous faites pour ces valeurs.
    'Ajout d'une barre de Progression en Vbscript + HTA par © Hackoo le 14/09/2013 
    Option Explicit
    Dim oExec,ws,Temp,Titre,MsgAttente
    Set ws = CreateObject("wscript.Shell") 
    Temp = WS.ExpandEnvironmentStrings("%Temp%")
    
    Sub CreateProgressBar(Titre,MsgAttente)
    	Dim ws,fso,f,f2,ts,ts2,Ligne,i,fread,LireTout,NbLigneTotal,Temp,PathOutPutHTML,fhta,oExec
    	Set ws = CreateObject("wscript.Shell")
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set f = fso.GetFile(WScript.ScriptFullName)
    	Set ts = f.OpenAsTextStream(1,-2)
    	Set fread = Fso.OpenTextFile(f,1)
    	LireTout = fread.ReadAll
    	NbLigneTotal = fread.Line 
    	Temp = WS.ExpandEnvironmentStrings("%Temp%")
    	PathOutPutHTML = Temp & "\Barre.hta"
    	Set fhta = fso.OpenTextFile(PathOutPutHTML,2,True)
    	fso.CreateTextFile Temp & "\loader.gif"
    	Set f2 = fso.GetFile(Temp & "\loader.gif")
    	Set ts2 = f2.OpenAsTextStream(2,-2)
    	for i=1 to NbLigneTotal - 1
    		ts.skipline
    	Next
    	Do
    		Ligne = ts.readline
    		For i=2 to Len(Ligne) step 2
    			ts2.write chr( "&h" & mid(Ligne,i,2))
    		Next
    	loop until ts.AtEndOfStream
    	ts.Close
    	ts2.Close
    	fhta.WriteLine "<HTML>"
    	fhta.WriteLine "<HEAD>" 
    	fhta.WriteLine "<Title>" & Titre & "</Title>" 
    	fhta.WriteLine "<HTA:APPLICATION"
    	fhta.WriteLine "ICON = ""Regedit.exe"" "
    	fhta.WriteLine "BORDER=""THIN"" "
    	fhta.WriteLine "INNERBORDER=""NO"" "
    	fhta.WriteLine "MAXIMIZEBUTTON=""NO"" "
    	fhta.WriteLine "MINIMIZEBUTTON=""NO"" "
    	fhta.WriteLine "SCROLL=""NO"" "
    	fhta.WriteLine "SYSMENU=""NO"" "
    	fhta.WriteLine "SELECTION=""NO"" " 
    	fhta.WriteLine "SINGLEINSTANCE=""YES"">"
    	fhta.WriteLine "</HEAD>" 
    	fhta.WriteLine "<BODY text=""white""><CENTER><DIV><SPAN ID=""ProgressBar""></SPAN>"
    	fhta.WriteLine "<span><marquee DIRECTION=""LEFT"" SCROLLAMOUNT=""3"" BEHAVIOR=ALTERNATE><font face=""Comic sans MS"">" & MsgAttente &" "& Titre & "</font></marquee></span></DIV></CENTER></BODY></HTML>"
    	fhta.WriteLine "<SCRIPT LANGUAGE=""VBScript""> "
    	fhta.WriteLine "Set ws = CreateObject(""wscript.Shell"")"
    	fhta.WriteLine "Temp = WS.ExpandEnvironmentStrings(""%Temp%"")"
    	fhta.WriteLine "Sub window_onload()"
    	fhta.WriteLine "    CenterWindow 320,90"
    	fhta.WriteLine "    Self.document.bgColor = ""Orange"" "
    	fhta.WriteLine "    image = ""<center><img src= "& Temp & "\loader.gif></center>"" "
    	fhta.WriteLine "    ProgressBar.InnerHTML = image"
    	fhta.WriteLine " End Sub"
    	fhta.WriteLine " Sub CenterWindow(x,y)"
    	fhta.WriteLine "    Dim iLeft,itop"
    	fhta.WriteLine "    window.resizeTo x,y"
    	fhta.WriteLine "    iLeft = window.screen.availWidth/2 - x/2"
    	fhta.WriteLine "    itop = window.screen.availHeight/2 - y/2"
    	fhta.WriteLine "    window.moveTo ileft,itop"
    	fhta.WriteLine "End Sub"
    	fhta.WriteLine "</script>"
    End Sub
    
    Sub LancerProgressBar()
    	Set oExec = Ws.Exec("mshta.exe " & Temp & "\Barre.hta")'Lançer la barre de Progression
    End Sub
    
    Sub FermerProgressBar()
    	oExec.Terminate
    End Sub
    '***************************************************Programme Principal****************************************************************************
    '--------------------------------RegSrch-------------------------------------------------------------------------------------------
    'RegSrch.vbs - Search Registry for input string and display results.
    '© Bill James - wgjames@mvps.org
    ' revised 20 Apr 2001 (parses regfile ~3X faster)
    ' revised 13 Dec 2001 (added Regedit command line switch for Win2K/WindXP)
    '----------------------------------------------------------------------------------------------------------------------------------
    Dim oWS : Set oWS = CreateObject("WScript.Shell")
    Dim oFSO : Set oFSO = CreateObject("Scripting.FileSystemObject")
    Dim sSearchFor
    sSearchFor = InputBox("Ce programme va rechercher dans votre base de registre et trouver toutes " & _
    "les instances du mot saisi." & vbcrlf & vbcrlf & _
    "Cette recherche peut prendre plusieurs minutes, alors il faut être patient." & _
    vbcrlf & vbcrlf & "Entrez le mot à rechercher " & _
    "cliquer OK...", WScript.ScriptName & " " & Chr(169) & " Hackoo Crackoo","JV16 POWERTOOL")
    If sSearchFor = "" Then Cleanup()
    Titre = "Recherche dans la base de registre © Hackoo © 2013"
    MsgAttente = "Veuillez patienter... La Recherche du mot "& DblQuote(sSearchFor) &" est en cours..."
    Call CreateProgressBar(Titre,MsgAttente)
    Call LancerProgressBar()
    Dim StartTime : StartTime = Timer
    Dim sRegTmp, sOutTmp, eRegLine, iCnt, sRegKey, aRegFileLines
    sRegTmp = oWS.Environment("Process")("Temp") & "\RegTmp.tmp "
    sOutTmp = oWS.Environment("Process")("Temp") & "\sOutTmp" & _
    Hour(Now) & Minute(Now) & Second(Now) & ".tmp "
    oWS.Run "regedit /e /a " & sRegTmp, , True '/a enables export as Ansi for WinXP
    With oFSO.OpenTextFile(sOutTmp, 8, True)
    	.WriteLine("REGEDIT4" & vbcrlf & "; " & WScript.ScriptName & " " & _
    	Chr(169) & " Hackoo Crackoo" & vbcrlf & vbcrlf & "; Résultat de la Recherche pour le " & _
    	"mot " & Chr(34) & sSearchFor & Chr(34) & " " & Now & _
    	vbcrlf & vbcrlf & "; NOTE: Ce fichier va être supprimer si vous ne le sauvegarder pas avec " & _
    	"WordPad." & vbcrlf & "; Vous avez interêt de le sauvgarder vers un nouveau " & _
    	"emplaçement si vous-voulez l'utiliser aprés." & vbcrlf & "; (si " & _
    	"vous sauvegarder le fichier avec l'extension .reg , Vous Pouvez l'utiliser pour restaurer " & _
    	"afin de restaurer chaque changement de la base de registre que vous faites pour ces valeurs..)" & vbcrlf)
    '---------------------------------------------------------------------------------------------------------------------------------------------------------------
    'ForReading 1 Ouvre un fichier en lecture seule. Vous ne pouvez écrire dans ce fichier.
    'ForWriting 2 Ouvre un fichier en mode écriture. Si un fichier portant le même nom existe, son contenu antérieur est écrasé.
    'ForAppending 8 Ouvre un fichier et écrit à  la fin de celui- ci.
    'TristateUseDefault -2 Ouvre le fichier en utilisant le paramètre système par défaut.
    'TristateTrue -1 Ouvre le fichier au format Unicode.
    'TristateFalse 0 Ouvre le fichier au format ASCII.
    'OpenAsTextStream(1, 0) donc est ouvert en lecture seule et au format ASCII
    '-------------------------------------------------------------------------------------------------------------------------------------------------------------
    	With oFSO.GetFile(sRegTmp)
    		aRegFileLines = Split(.OpenAsTextStream(1,0).Read(.Size), vbcrlf)
    	End With
    'oWS.Run "WordPad " & sRegTmp, 3, True
    	oFSO.DeleteFile(sRegTmp)
    '-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    'Exemple comment utiliser la Fonction Instr
    'Dim SearchString, SearchChar, MyPos
    'SearchString ="XXpXXpXXPXXP" ' Chaîne dans laquelle rechercher.
    'SearchChar = "P" ' Recherche "P".
    'MyPos = Instr(4, SearchString, SearchChar, 1) ' Comparaison textuelle commençant à  la position 4. Renvoie 6.
    'MyPos = Instr(SearchString, SearchChar) ' La comparaison est binaire par défaut (le dernier argument est omis). Renvoie 9.
    'MyPos = Instr(1, SearchString, "W") ' Comparaison binaire commençant à  la position 1. Renvoie 0 ("W" est introuvable).
    '-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    	For Each eRegLine in aRegFileLines
    		If InStr(1, eRegLine, "[", 1) > 0 Then sRegKey = eRegLine
    		If InStr(1, eRegLine, sSearchFor, 1) > 0 Then
    			If sRegKey <> eRegLine Then
    				.WriteLine(vbcrlf & sRegKey) & vbcrlf & eRegLine
    			Else
    				.WriteLine(vbcrlf & sRegKey)
    			End If
    			iCnt = iCnt + 1
    		End If
    	Next
    	Erase aRegFileLines
    	If iCnt < 1 Then
    'Fermeture de la fenêtre d'attente (La barre de progression)
    		Call FermerProgressBar()
    		oWS.Popup "Recherche complétée dans " & FormatNumber(Timer - StartTime, 0) & " seconds." & _
    		vbcrlf & vbcrlf & "Pas instances de " & chr(34) & sSearchFor & chr(34) & _
    		" Trouvé.",, WScript.ScriptName & " " & Chr(169) & " Hackoo Crackoo",48
    		.Close
    		oFSO.DeleteFile(sOutTmp)
    		Cleanup()
    	End If
    	.Close
    End With
    'Fermeture de la fenêtre d'attente (La barre de progression)
    Call FermerProgressBar()
    oWS.Popup "Recherche complétée dans " & FormatNumber(Timer - StartTime, 0) & " seconds." & _
    vbcrlf & vbcrlf & iCnt & " instances de " & chr(34) & sSearchFor & chr(34) & _
    " Trouvé." & vbcrlf & vbcrlf & "Cliquer sur OK pour ouvrir les Résultas dans WordPad.",, _
    WScript.ScriptName & " " & Chr(169) & " Hackoo Crackoo",64
    oWS.Run "WordPad " & sOutTmp, 3, True
    oFSO.DeleteFile(sOutTmp) 
    
    Sub Cleanup()
    	Set oWS = Nothing
    	Set oFSO = Nothing
    	WScript.Quit
    End Sub
    '**********************************************************************************************
    'Fonction pour ajouter les doubles quotes dans une variable
    Function DblQuote(Str)
    	DblQuote = Chr(34) & Str & Chr(34)
    End Function
    '****************************************************Fin du Programme Principal***********************************************************************
    '47494638396180000F00F20000F3D9DDF15279F2BBC6F2B0BEF17492F1527900000000000021FF0B4E45545343415045322E30030100000021FE1A43726561746564207769746820616A61786C6F61642E696E666F0021F904090A0000002C0000000080000F000003E708B20BFEAC3D17C5A4F1AA7CABF61D3781A3089918B391AB5949A9FB96EC6B9DF58CCBB9DDF340D54E1823B68C365A107664FA744527B4798B56A94AE4343994FE9E57AE35EB5D86B7E86F590B5EBBCF6AB8992C67CFBB3EBA1EBF1FF3FF7E81587862838285886977878A760C039091031392919495930F98990E9B97959F92A1969A98A390A79C009B9EA5A0AEA2B0A49DA6B2A8B6AAADB4AFBBB1BDB3ABACBCC1C3BAC4BEC7C0C6CBB5BFB7CEB9CDC9C2A9D5B8D6D0D8D3D1C5D2CCC2CADEE2DDE4C8DFE6E3E8E5E0DAE7E1EBCFDBEDE9EFEAA2C3BF1AF8C9FAC8F917FB02FAE3077020A8040021F904090A0000002C0000000080000F000003FF08B40BFE22C607A5A0CE5EAC31E89CE581145949A318A24C5B6A5B06BF261C7FF3A9CA75CEEFB89EA6C5A0016D46944EF963068FBEA713B99C5405C4C635696D76A55FAAF7260693A3655B96C03D0BA1EF297A1E0FD32DEBB67ECB1FEFFD7D667F667981697772756E708C898D11858092828688768A83871A059C9D051403A1A203A0A3A1A5A6A8A3AAA2ACA70FA6AF0EB1A4B0B1AEB5B3B19E9DB8BEB6A9C0ABC2ADC4B200B4BFBAC1CBC3CDA2BC9CCAC8B7C6B9D4CCD8CEDAC5CFC7C9D6D3B4D19FE1E6DED7E0E8E2D5EBE7DCDFBBD1ECD9EAF0E9EDF7F4DBF6FDF2BCFBBAE97BE7AF5EBE82FC0EDE028821DB330F0EB941DCF6B021458916055664052001010021F904090A0000002C0000000080000F000003FF08B40BFEAC3D276A9DD40A0CF4C61E17829A58929699A257C44CAE948DF359AFF7F5787AFEF913DEAFC30BF2620458CC482336854C9B530ADD15ADCFAB0FA974457153701588A56AC33DF470ACE6429665F1994D9FDBB378B3C7EDE0ABBF697579728381777A1A7E7E8288848D86856B878E168A7064987F71908F9291809E1A05A3A40513A5A41303ABAC03AAADABAFB0B2ADB4ACB6B10FB0B90EBBAEBABBB803A8A3A7C4C2C8C0B3CAB5CCB7CEBC00BEC9BDC1D0C3C70FC4A6D7D4D2D6D5CBE1CDE3CFE5D1D3DDD7DBC6A8DEE9E7BFF1EFE0DFE2F6E4F8E6FAABECDAD9F3D4051CC84F5E417AF7E015F4E780E141810F092A9C588F62C260EE3064B4C5E10F5EB98EF93E62F0A80FE43E911C13000021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C97422E70BF4BE9EC085A3576AE73791A05949D43BBDD613AADDBDEA368FF939D64F1834F542B4990CB21C1A9DA8E3B31885E26E2269957ABD2599156558DB25627766E0999CB5B6B9826F6C3C8FA0A76BF77D9B87EFCB785E4D0A83727E6C7F6F7D8B6A8D6948859174877A88969598949A58869D838C8F81A17C8EA2A61A05A9AA0513ABAAADAEAC0F03B4B50313B6B5B8B9B7B3BCBBB9C0B6C2BABEC1C6B6B1B20ECAB0AEC4B4D0BD0EBCD300D5D2D9C8C5D4BFDBB4CD0FE1CCB1DADDC7E7C3DFD6D8EBE6D7DEE9B5E300F4F4EDF2D1EEFBF9ECF1F0E800AAEB67AF9C3883FDDEE113C88DA1BE84FC1CFACB55F0D9418B10334A54F86F1AA1C78EBF305E4CC541A43C0E014F5E48C910E5C06D2E1B9E4C000021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F102C1B9EEDE050A1F587667388D2959495835BD16F4AE23F9E4BAC3E3AC5D0E6812067D39DAEC66933533C622F2B8194651575595FACB0A944FC6D219834EA55B74F78C656BD7E9769C032E8BC33005D3DD9BF7E180567C44723C757A6488668A77835E846F827E907F92867B8C798787815C969F9EA16A49989BA5989DA3A285A0AAAE1D05B1B20513B3B2B5B6B40FB9BA0E03BFC00313C1C0C3C4C20FC7C8BEC7C6C4CEC1D0C0BCB8B6D5B3D7B7C9CDDBCFDDD1DFC5E1BFD2E4E3CB00CAD4BBB9D9B1EEBDE9DCCCDEF4E0F6E2F8E6FAE8CAE503EB1C04043070A0BF73FF12225CC8EF5FC176ECAC45C4C6505E3D8BF730E6D3B88F2B63BF791E1F4A140891E4488F0A1B563CA8B225CA9326DF5D804990A2340D17F1E1CCA8F3424E8D3B8B25000021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F1AA7C85F7DA07766258929F99A2602561D5E45A902BDB8FB83AFAC8F7939E2008CC157FBAD92D5663C2384F0651373D21AD006175973D7693B8E86BE32443CD5223558DD5B2B9EE2BBCA76C9EEB625A7EEBFBB6BD717E736B721E786863878A61827D818F8091848D028B6596778C90939B7F9C922298697B76A3887A947C436F8EA0839E2205B2B30513B4B3B6B7B50FBABB0EBD1303C2C303C1C4C2C6C7C9C4CBC3CDC80FC7C2C0BCBAB9B7D7B4D9B8D1D2CFC5DDCAE1CCE3CEE5D00ED203D4BFD6D5D8EFDAF1DCE9DEE7E0F5E2F9E4FBE6FDE800D4B10330B0A0BB76F0FEE10B684FE1B787F7BE194C48F060458A03D5417418B12D23478513E52114799164C6860CF5A5E4B7D25F4B801A23521CE96B9E8699256BF6D3A072E7859E2D79B2DC99000021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F1AA7CAB1620F885C2189AE245962AB9795065C53056BF9C9D036BEAF4AC5F6F02240E1F40D94CC798289D32E8ED893C0A57466C557B756D4954A644BCC43569BB30CFBAE6B6BDDDD3571E07A9EF51F4992CDD15E73E6F7482817F75027853797C7A63668E8684419259709480888B8F6589699A6A91A16CA26E499FA78AA99E37A496AD83AF2005B3B40513B5B4B7B8B60FBBBC0EBEBAB81303C5C603C4C7C5C9CACCC7CEC6D0C5C1BDBBC2B5D7B9D5C3DBD80FCACBDFE0D2C8E2CDE6CFE8C6D4C0D6DDDAEDDCF1DEF3F000E0E50EF8E4FCEAE1FAE0D8011048D05DBD59D910FACB776FDCC27E00CF453C5650DE4083172D56A4D7503362C77413A33D1C19721AC68DF6502A3CF8EBA3C8920CF79174F98F26328BF534E0CCB8F29D4E8E2135780C7A61A84BA1CF12000021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F1AA7CABF697208ADA48866699A2E30662AFCBC1B3CC4C9544DF8FD9F63EC1242804FA86C19C0592C3359931A533FA74109147E3CA1AC49AA4D01A78A7B395C7E62537BBDE02AEDA5F7B84AE57D353F11D0D9F9FFC45805E747B8554877A883C82717F6F5D8D818F3E768A678689998B936E7D9C729F8E44959A97966A78619B9EAC908C8005B1B20513B3B2B5B6B40FB9BA0EBCB8B6C0B31303C5C603C4C7C5C9CACCC7CEC6BFBBB9C2B7D3C1D7C3D9D6BED40FCACBDFE0D0E10EE0C8E2CAD2DDD8ECDAEEDC00EBF2DEF0B1E4E8E6E3E9CFFCC6F8F302D6A3D78EE03B83F1E69DC3C7D05F3900E7041694789062C2810B1DE683B84F2E5F338D16EF6D1369AF174292274D2AECC8F1A3C77E2FFF6944A8A120BC9A076F5EB049F3824B7F1A7EC60CFA2C010021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F1AA7CABF61D370924A995E6850A27BA8118FC8A333355524CE316848F2BD623287410812BDEEDE793299B3BA6CE06A51A8348D710BB4D4A6B39706F1A7E92C7E2A5ECD8D55E57D992395D2D7FE7F8FB97FD7603F87F41794E7A848651875681706D2571297D728588948A8395766B5C91908B7E44979693A28999986880A99B9E2505AEAF0513B0AFB2B3B10FB6B70EB9B5B3BDB0BFB40F03C4C50313C6C5C8C9C7C3CCBCB8B6C1AED3BA00D0BBD2D1BEDBC0CEC9CBE0DFC6E1C6D8D7DAD9DCEADEECC2EED4DDEFE8EB00CCCD0EF7E5CAE3C5E7FFE9E8B513380F60BD73FAFA11DBB750E100830321160C28311E3C6B09F3316388CF27DE338A200F868C387262BD8C1EC5695499925C3D771A5E128C3910E605993259AE6CB84F03B8040021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F1AA7CABF61D378193609ADA895EAAB091AF1833636541760DDB37B6E78FD6CA217405853C9D2C89FB3997401F14562C09AD2DA694D69C7AB95B49B8371397C9D5630BABD29E95E07737EEAE47E5C4AB5AC53ED99F74777F5F66837169796B7B7E828D80858E8464866688009645949391818F9B9E70957A897C8B2605A8A90513AAA9ACADAB0FB0B10EB3AFADB7AAB9AEB2B01303C0C103BFC2C0C4C5B6BDB8CABACCBCB5BECEA8BBD3D2B400C90EC5C60FDBC3DDDBD9D8D1D0CBE5CDE7CFE3E6EBE8EDEAE2DEC7C2F3C1E2F7E4EFD5E9FBFAD7F8ECE26DABC74D5BB87C00DD258487B061C07CF2C015233860613F8BFF1C2AD4C8901B5D44831325D263974E03C97726DD95BC70B2A54A0021EB699898000021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F1AA7CABF61D3781A3F80828AAA56A2561E416BB16E496F36DE7BCC9A6931F8A86331177461D2CD963149D48A84328080A8F4BA98CC9D562B75E25F835AE4D85D6DF772D6637C9EE2E5C4C4DB3E2E1B7B9FC9CEBFB7B5F7527576D867F517E7281878B7640846A8D798E898C88598A945A83673F05A0A10513A2A1A4A5A30FA8A90EABA7A5AFA2B1A6AAA8B3A01303BABB03B9BCBAAEB5B0C2B2C4B4ADB6C6B8CAAC00C1C8C3D0C50EBFBABEBFCFCEC9D2C7DAD1DED3E0DDD9E4DBE2CBD4D5D7BCE5DFEDE1EFE3E6F1E8E7CDD5BD0FF8F4CDFCB7FDF302BA13180EDFBA5DFE98FD5BA8B021B77A09D3FD3A68ED1B370D16C5610C77F10C42C68F1C355E9838921780040021F904090A0000002C0000000080000F000003FF08B40BFEAC3D17C9A4F1AA7CABF61D3781A308998EA0AA1BD99A9584B9B175D27189EF70FEACC09AAEC7630C8D37A212395BCA5E4C0070254C46ABCDAB2FFBC442BBDBAF8D3B964E05DE74585D04B7CB6C67F98C5EDBDF47B73C0FBFEF7F67715A78567A837F647C8A805382868F7D8489859188621374059A9B05139C9B9E9F9D0FA2A30EA5A19FA99CABA0A4A2AD9AB1A60003B6B703A8AFAABBACBDAEA7B0BFB2C3B4BAC1BCC8BECAC0B5B8B6C700D1D3C2CCC4D6C6D5D2DAD4C9DBDECFD0DCE3DEDDCBDFE7E6CDEAD7E8CDE1B9E4E9F2EBF4EDECD9E5F6B4F0F8B3FFC5006213E8EEDEBE09F0DC69F0C66CE1B98617182A8CF870622B87CD1C3C0390000021F904090A0000002C0000000080000F000003E708B40BFEAC3D17C9A4F1AA7CABF61D3781A3089918B391AB5949A9FB96EC6B9DF58CCBB9DDF340D54E1823B68C365A107664FA744527B4798B56A94AE4343994FE9E57AE35EB5D86B7E86F590B5EBBCF6AB8992C67CFBB3EBA1EBF1FF3FF7E81587862838285886977878A760C059091051392919495930F98990E9B97959F92A1969A98A390A79C009B9EA5A0AEA2B0A49DA6B2A8B6AAADB4AFBBB1BDB3ABACBCC1C3BAC4BEC7C0C6CBB5BFB7CEB9CDC9C2A9D5B8D6D0D8D3D1C5D2CCC2CADEE2DDE4C8DFE6E3E8E5E0DAE7E1EBCFDBEDE9EFEAA2C3BF1AF8C9FAC8F917FB02FAE3077020A804003B000000000000000000

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut super travail
    merci de votre aide

    votre travail en VBs est vraiment super.

    le problème sur votre VBs est exactement le même que sur mes commandes batch :

    le mot recherché est inclus dans d'autres mots.

    par exemple si je recherche le mot "titi",
    je me retrouve avec des sélections de clé qui contiennent "ParTITIon".

    an batch je n'est pas trouvé comment sélectionner un "mot entier seulement"
    comme dans la recherche avec regedit.

    D'où mon problème.

    Merci encore pour votre travail remarquable.

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut LaurentBatch et Hackoo,

    fait un test IF en bouclant sur la sélection récuperée, ainsi tu pourras isoler
    la bonne clé et la supprimer.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for %%a in (aaatitiaa bbbtitibbb titi ccctiticcc) do IF /i "Titi"=="%%a" echo Destruction clé : %%a
    Voilà l'idée à adapter à ton cas avec un FOR /F les bon tokens et les bons Delims.

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    merci de ton aide
    cela je le fait déjà pour les clé mais je n'y arrive pas pour les valeurs.

    Quand je lis le registre il y a des retours chariot après la clé et en plus il faut gérer les espaces qui ne sont pas toujours au même endroit:

    HKEY_CLASSES_ROOT\TOTO
    Nouvelle valeur #3 REG_MULTI_SZ titi
    Nouvelle valeur #4 REG_EXPAND_SZ titi
    (par d‚faut) REG_SZ titi
    titi REG_DWORD 0x0
    tititutu REG_SZ

    Je dois supprimer la valeur en ne connaissant que la donnée !
    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f "Tokens=*" %%1 in ('reg query "HKCR" /s ^|findstr /e "titi"') do (
    reg delete %%1
    )
    cela supprime bien la clé qui correspond

    si je modifi le tokens et le delims je trouve bien mes valeurs et données mais je perd le chemin complet et le reg delete %%1 ne fonctionne plus !

    C'est un vrai casse tête cela fait 3 jours que je planche la dessus.
    Je pense que le plus simple serais de pouvoir faire une recherche par mot entier seulement mais en batch je ne pense pas que se soit possible

  6. #6
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Essaye de remplacer "Findstr" par "Find" et en mettant des espaces dans le string à rechercher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f "Tokens=*" %%1 in ('reg query "HKCR" /s ^| find " titi "') do (
    reg delete %%1
    )
    De cette manière tu auras en sortie uniquement ce qui est relatif à "titi"
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    les espaces ne fonctionnent pas !


    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
    set nom=" titi "
    
    for /f "tokens=*" %%1 in ('reg query "HKCR" /s /v /d /f "%nom%"') do (
    echo %%1
    rem reg delete %%1 /v ""
    )
    for /f "tokens=*" %%1 in ('reg query "HKCR" /s ^|findstr /e "%nom%"') do (
    echo %%1
    rem reg delete %%1 /v ""
    )
    for /f "tokens=*" %%1 in ('reg query "HKCR" /s ^|find "%nom%"') do (
    echo %%1
    rem reg delete %%1 /v ""
    )

  8. #8
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    c:\test>set nom=" titi "
    c:\test>echo salut titi | find %nom%
    salut titi
    c:\test>
    Me retourne bien "salut titi"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    c:\test>set nom=" titi "
    c:\test>echo salut aaatiti | find %nom%
    c:\test>
    c:\test>
    Et là non.

    Apparemment cela fonctionne.

    Donc essaye sans les strings dans le for :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /f "tokens=*" %%1 in ('reg query "HKCR" /s ^|find %nom%) do ...
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    bonjour,

    avec set nom=" titi " aucun résultat
    avec set nom="titi" titi ok mais aussi partition et tout les mots qui comprennent titi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    REM pour suppression de données ""
    set nom=" titi "
    for /f "tokens=*" %%1 in ('reg query "HKCR" /s ^|find %nom%') do (
    echo %%1
    rem reg delete %%1
    )
    pause

  10. #10
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Effectivement j'ai testé et le problème est l'espace ça marche
    comme ça " titi" mais pas avec " titi ".

    Vraiment chiant ton problème

    J'ai réussi avec cette solution mais elle est vraiment tiré par les cheveux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    
    set nom=titi
    set final= " %nom% "
    
    for /f "tokens=* delims= " %%1 in ('reg query "HKCR" /s ^|find /i "%nom%"') do for /f "tokens=* delims= " %%a in ('echo %%1 ^| find /i  "%nom%"') do echo %%a- | find /i %final%

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    merci
    c'et vrai que c'est un problème chi...
    ta commande isole titi mais le reg delete ne fonctionne plus !!

    reste à trouvé comment supprimer une valeur en ne connaissant que sa donnée

    ca fait presque une semaine que je bosse dessus,
    je commence à désespérer

  12. #12
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Si le delete fonctionnait avant je ne comprend pas pourquoi il ne fonctione plus
    on a exactement la même ligne en sortie, non ?
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    bonjour,

    tout d'abord merci de m'aider

    voici ce que j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f "tokens=* delims= " %%1 in ('reg query "HKCR" /s ^|find /i "%nom%"') do for /f "tokens=* delims= " %%a in ('echo %%1 ^| find /i  "%nom%"') do echo %%a | find /i %final%
    reg delete  %%1
    pause
    ERREUR : nom de clé non valide.
    et avec reg delete %%1 /v
    ou
    reg delete %%1 /v""
    ou
    reg delete %%1 /v "%final%"
    toujours ERREUR : nom de clé non valide.

    je pense que l'on ne peut supprimer une donnée qu'en passant par le nom de la valeur:
    pour supprimer:
    HKCR\TOTO
    tralala REG_SZ titi

    il faudrait faire:
    reg delete %%1 /v tralala

    mais le résultat de la commande du dessus fait ressortir "tralala REG_SZ titi"

    Je vais chercher à isoler "tralala" et cela devrais pouvoir fonctionner.
    je travail dessus et je tient au courant.
    Merci encore de ton travail.

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut suite de mes recherches
    voici ou en est la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    set nom=titi
    set final= " %nom% "
    
    for /f "tokens=1,2* delims=" %%1 in ('reg query "HKCR" /s ^|find /i "%nom%"') do (
    	for /f "tokens=* delims= " %%a in ('echo %%1 ^| find /i  "%nom%"') do (
    		for /f "tokens=1,2 delims=REG" %%c in ('echo %%a ^| find /i %final%') do (
    			for /f "tokens=*" %%x in ('reg query "HKCR" /s ^|findstr /e "%nom%"') do (
    			
    			reg delete %%x /v""
    			)
    		)
    	)
    )
    j'arrive a récupérer la valeur avec %%c
    mai j'ai encore un problème avec %%x

    Me reste plus qu'a retrouver le chemin de la clé "%%x"pour pouvoir ensuite faire:
    reg delete %%x /v %%c et la se sera la TEUF

  15. #15
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 46
    Points
    46
    Par défaut eureka
    merci à tous de votre aide et tout particulièrement à sachadee.

    j'ai enfin réussi à finir.

    Voici ma commande qui sera surement à optimiser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for %%R in ("HKCR" "HKCU" "HKLM" "HKU" "HKCC") do (
    	for /f "tokens=1,2* delims=" %%1 in ('reg query %%R /s ^|find /i "%nom%"') do (
    		for /f "tokens=* delims= " %%a in ('echo %%1 ^| find /i "%nom%"') do (
    			for /f "tokens=1,2 delims=REG" %%c in ('echo %%a ^| find /i %final%') do (
    				for /f "tokens=*" %%x in ('reg query %%R /s /v /f %%c') do (
    				reg delete "%%x" /v "" /f
    				reg delete "%%x" /v "%%c" /f
    				)
    			)
    		)
    	)
    )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/01/2007, 10h26
  2. Quel langage utiliser pour toucher au traitement de signaux ?
    Par Me,Myself and I dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 18/07/2006, 11h57
  3. [Langage] Quel langage utilisé pour ce cas : l'active directory ?
    Par pogy dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 10/05/2006, 11h11
  4. [langage] Quel langage utiliser pour un script de CHAT ?
    Par Manu0086 dans le forum Général Conception Web
    Réponses: 15
    Dernier message: 11/11/2005, 19h14
  5. Quel langage utiliser pour des formulaires ?
    Par le_ben dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 13/10/2005, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo