Мне нужно получить значение в ключе реестра и сохранить в переменной с помощью командного файла.
Я написал базовую командную строку, чтобы проиллюстрировать мою логику (используя echo вместо установки переменной):
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
Я ожидаю, что имя пользователя будет напечатано на экране, но этого не происходит.
Я уверен, что значение реестра "LastUsedUsername" не пустое, оно действительно содержит данные. Кроме того, разделителем является табуляция, а не пробелы.
РЕДАКТИРОВАТЬ
Если я просто наберу
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername"
... это возвращает:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
LastUsedUsername REG_SZ Administrador
Этот код
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername" ^| findstr /ri "REG_SZ"
... возвращает:
LastUsedUsername REG_SZ Administrador
Затем, когда я использую команду for, я просто не получаю вывод от echo.