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.