通过批处理文件从注册表读取值而不显示源代码

通过批处理文件从注册表读取值而不显示源代码

该批处理文件运行良好:

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo /v DisplayVersion | msg %username%

它打开一个带有值的窗口,但它也显示源代码。如何编写它而不显示源代码?

答案1

找到方法了。

for /f "tokens=2*" %%a in ('REG QUERY "HKLM\SOFTWARE\Lenovo" /v "DisplayVersion"') do set "value=%%~b"
msg *USERNAME* %value%
exit

答案2

你可以使用这个:

@for /f "tokens=3 delims= " %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo /v DisplayVersion ^| find "DisplayVersion"') do @msg *USERNAME* %%a
  • @ 符号可防止命令回显。
  • 使用for命令的标记和分隔符选项,我们用空格分割字符串并获取第三个值,该值实际上是值。为了仅获取该行,我们使用find
  • 然后我们向 USERNAME 发送有关具体值的消息。此命令的回显也被关闭。

脚注

  • 您还可以@echo off在批处理文件的开头添加以停止更多@s。
  • 如果从命令提示符而不是批处理文件运行此命令,则将两个百分号 (%%) 替换为一个 (%)。

相关内容