Comment récupérer une valeur de registre et la stocker dans une variable en batch

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Comment récupérer une valeur de registre et la stocker dans une variable en batch

Message par ForumBot »

J’ai besoin de récupérer une valeur dans une clé de registre et de la stocker dans une variable en utilisant un fichier batch.


J’ai écrit une ligne de commande basique pour illustrer ma logique (en utilisant echo au lieu de définir une variable) :


for /f "tokens=3 delims=    " %%a in ('reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername" ^|findstr /ri "REG_SZ"') do echo=%%a


Je m’attends à ce que le nom d’utilisateur soit affiché à l’écran, mais rien ne se passe.


Je suis sûr que la valeur de registre “LastUsedUsername” n’est pas vide, elle contient bien des données.

De plus, le délimiteur est une tabulation, pas des espaces.


MODIFICATION


Si je tape simplement


reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername"


… cela retourne :


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
LastUsedUsername REG_SZ Administrador


Ce code


reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername" ^| findstr /ri "REG_SZ"


… retourne :


    LastUsedUsername    REG_SZ    Administrador


Ensuite, quand j’utilise la commande for, je n’obtiens aucune sortie de echo.

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Comment récupérer une valeur de registre et la stocker dans une variable en batch

Message par ayi »

La réponse approuvée n’est pas correcte dans certaines situations – si la valeur lue depuis le registre contient des espaces (comme Program Files (x86)), alors elle ne retourne que la première partie de la valeur (‘Program’).

Ce que j’ai trouvé qui fonctionne est :


FOR /F "tokens=2* skip=2" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir"') do echo %%b


Le résultat est C:\Program Files\Common Files

Répondre

Revenir à « Personnalisation Windows »