Batch - detecter une entrée dans le registre - Win 7 - Windows & Software
MarshPosté le 08-03-2011 à 19:33:39
Salut à tous, je voudrais faire un batch qui détecte si une entrée dans le registre existe et répond en gros oui ou non donc j'ai la commande reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation" qui me donne comme résultat: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run lockdown REG_SZ rundll32.exe user32.dll,LockWorkStation
Fin de la recherche: 1 correspondance(s) trouvée(s)." je souhaite donc stocker le "1" ou le "0" de la ce résultat dans une variable pour faire un if j'ai essayé: -FOR /f "tokens=5 delims= " %%i IN ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation" | find "Fin"') DO echo %%i pour recuperer le 5ème mot dans la commande => le batch "plante" (fin inattendue et se ferme, ça semble être dû aux apostrophes) -set reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation" FOR /f "tokens=5 delims= " %%i IN (%reg% | find "find" ) DO echo %%i même résultat -reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation" | find "fin" > test.txt FOR /f "tokens=5 delims= " %%i IN (test.txt) DO set p=%%i echo %p% => la ça ne plante pas mais la variable est vide (ça me met un "commande ECHO désactivée" ), j'ai aussi essayé avec juste un echo %%i, même resultat Quelqu'un pourrait m'expliquer ou je me plante? Ou si vous voyez une autre méthode pour le faire sinon Merci d'avance
Marsh Posté le 08-03-2011 à 19:33:39
Salut à tous, je voudrais faire un batch qui détecte si une entrée dans le registre existe et répond en gros oui ou non
donc j'ai la commande
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation"
qui me donne comme résultat:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
lockdown REG_SZ rundll32.exe user32.dll,LockWorkStation
Fin de la recherche: 1 correspondance(s) trouvée(s)."
je souhaite donc stocker le "1" ou le "0" de la ce résultat dans une variable pour faire un if
j'ai essayé:
-FOR /f "tokens=5 delims= " %%i IN ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation" | find "Fin"') DO echo %%i
pour recuperer le 5ème mot dans la commande => le batch "plante" (fin inattendue et se ferme, ça semble être dû aux apostrophes)
-set reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation"
FOR /f "tokens=5 delims= " %%i IN (%reg% | find "find" ) DO echo %%i
même résultat
-reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f "rundll32.exe user32.dll,LockWorkStation" | find "fin" > test.txt
FOR /f "tokens=5 delims= " %%i IN (test.txt) DO set p=%%i
echo %p%
=> la ça ne plante pas mais la variable est vide (ça me met un "commande ECHO désactivée" ), j'ai aussi essayé avec juste un echo %%i, même resultat
Quelqu'un pourrait m'expliquer ou je me plante?
Ou si vous voyez une autre méthode pour le faire sinon
Merci d'avance