我需要在注册表项中获取一个值并使用批处理文件存储在一个变量中。
我写了一个基本的命令行来举例说明我的逻辑(使用 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
Run Code Online (Sandbox Code Playgroud)
我希望用户名打印在屏幕上,但它没有发生。
我确定注册表值“LastUsedUsername”不为空,它确实有数据。此外,分隔符是制表符,而不是空格。
编辑
如果我只是输入
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername"
Run Code Online (Sandbox Code Playgroud)
...它返回:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
LastUsedUsername REG_SZ Administrador
Run Code Online (Sandbox Code Playgroud)
这段代码
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername" ^| findstr /ri "REG_SZ"
Run Code Online (Sandbox Code Playgroud)
...返回:
LastUsedUsername REG_SZ Administrador
Run Code Online (Sandbox Code Playgroud)
然后,当我使用 for 命令时,我没有从 echo 中得到任何输出。