Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
.BAT : Supprimer un dossier avec valeur clef registre
Auteur Message
Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Bonjour à tous,

Je souhaiterais créer un fichier .bat qui à partir d'une clef registre retrouve le chemin d'un dossier et le supprime.

Par exemple j'ai la clef registre :
HKEY_CLASSES_ROOT\DOSSIER A SUPPRIMER\shell\open\command

Elle m'indique que le dossier est présent par exemple dans C:\Program Files (x86)\Ici\DOSSIER A SUPPRIMER

Comment puis-je utiliser cette information du registre pour supprimer le dossier en utilisant un fichier .bat ?

Merci de vos aides !



Dernière édition par Micromega le Jeu 24 Oct 2013 - 13:53; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Salut je t'ai fait un exemple en jouant avec les tokens du for /f :

Code:

@echo off
SetLocal EnableDelayedExpansion
set $cle=HKEY_CLASSES_ROOT\DOSSIER A SUPPRIMER\shell\open\command

for /f "tokens=2,3,4 delims=^\" %%a in ('echo %$cle%') do (echo c:\%%a
                                                           echo c:\%%b
                                                           echo c:\%%c)

 
pause


Ici j'ai juste fait un echo mais ça te montre les possibilité à toi d'adapter

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Bonjour Sachadee,

Merci pour ton intervention,

Je n'ai pas bien compris la fin du code : (echo c:\%%a
echo c:\%%b
echo c:\%%c)

Comment faire pour que le répertoire (dont le chemin d'installation est donné par la clef registre) soit supprimé ?

Merci.



Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Il te faut remplacer le

Code:
echo %%X


qui pointe sur le bon repertoire par un :

Code:
rd /s "c:\Program Files (x86)\%%X"



Apparemment c'est %%b dans ton cas. (a toi de contrôler)

fait des test avec echo (au lieu de "rd /s") pour commencer et lorsque tu as la bon chemin tu remplaces. Pour éviter les catastrophes.

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Neutral ... J'ai dû faire une erreur quelque part, il n'arrive pas à trouver le dossier à partir du registre.

J'ai installer un dossier test (OKOK) dans "D:\Test" et qui à créé une entrée dans le registre de cette manière :

[HKEY_CLASSES_ROOT\OKOK]
@="D:\\Test\\OKOK"

Le but étant d'effacer le dossier OKOK et se qu'il contient... mais j'ai l'impression que la valeur du registre indiqué dans le bat ne sert à rien.



@echo off
SetLocal EnableDelayedExpansion
set $cle=HKEY_CLASSES_ROOT\OKOK

for /f "tokens=2,3,4 delims=^\" %%b in ('echo %$cle%') do rd /s "%%b"

pause


= J'ai en réponse : le fichier spécifié est introuvable. Confused


Désolé j'ai jamais fait ça auparavant donc je patine un peu.



Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Salut,

Sur ma machine cela fonctionne il me sort "OKOK".

Le premier exemple que je t'ai passé fonctionne ?
quel est ton OS ?




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Bonjour,

Pour moi il n'utilise pas la valeur donnée par le registre qui indique le dossier d'installation (qui est "D:\\Test\\OKOK")

Mais j'ai l'impression qu'il ne tient pas compte de registre tout court, il reprend juste le nom donné dans :
set $cle=HKEY_CLASSES_ROOT\OKOK
J'ai bien un echo de OKOK, mais il n'y a aucune action, comme si, je me répète, il n'utilisais pas la valeur du dossier d'installation contenu dans le registre.
Le but étant de supprimer un dossier ou de créer un action selon là où les fichiers ont été installés. Si je passe pas par le registre, je dois faire une recherche qui prend beaucoup trop de temps...

Sinon je suis sous Windows 8.

Merci

A bientôt ! Okay



Répondre en citant
Message .BAT : Supprimer un dossier avec valeur clef registre 
Bonjour,

Je reviens vers vous avec un nouveau code :


Code:
echo off
for /F "tokens=3* delims=\" %%a in ('reg query HKEY_CLASSES_ROOT\TEST ^| findstr REG_') do (
 echo le chemin d'accès est %%a
 set valeur=%%a
)
rd /s /q "%valeur%"

pause
end



Mais il m'indique que "Le fichier spécifié est introuvable". Crying or Very sad


Alors que si je fais seulement un :
Code:
Reg query "HKEY_CLASSES_ROOT\TEST"

J'obtiens : C:\Program Files (x86)\DOSSIER A SUPPRIMER
Qui est le bon dossier à identifier et à supprimer.

De même si dans le code donné plus haut je remplace :
Code:
rd /s /q "%valeur%"

par
Code:
echo valeur=%valeur%

j'obtiens :
Code:
le chemin d'accès est DOSSIER A SUPPRIMER
valeur=DOSSIER A SUPPRIMER



Quel peut être le problème dans le nouveau code, pour supprimer le dossier à partir de la valeur du registre...

Merci.[/code]



Message .BAT : Supprimer un dossier avec valeur clef registre 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch