<p>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.</p>
<p>J’ai écrit une ligne de commande basique pour illustrer ma logique (en utilisant echo au lieu de définir une variable) :</p>
<pre><code class="lang-auto">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
</code></pre>
<p>Je m’attends à ce que le nom d’utilisateur soit affiché à l’écran, mais rien ne se passe.</p>
<p>Je suis sûr que la valeur de registre “LastUsedUsername” n’est pas vide, elle contient bien des données.<br>
De plus, le délimiteur est une tabulation, pas des espaces.</p>
<p><strong>MODIFICATION</strong></p>
<p>Si je tape simplement</p>
<pre><code class="lang-auto">reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername"
</code></pre>
<p>… cela retourne :</p>
<pre><code class="lang-auto">HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
LastUsedUsername REG_SZ Administrador
</code></pre>
<p>Ce code</p>
<pre><code class="lang-auto">reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername" ^| findstr /ri "REG_SZ"
</code></pre>
<p>… retourne :</p>
<pre><code class="lang-auto"> LastUsedUsername REG_SZ Administrador
</code></pre>
<p>Ensuite, quand j’utilise la commande for, je n’obtiens aucune sortie de echo.</p>