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 ![:o :o](https://forum-images.hardware.fr/icones/redface.gif)