REG QUERY cmd的返回值

时间:2014-08-21 07:33:44

标签: batch-file registry uac

首先抱歉我的英语不好。 如果uac正在运行,我必须检查。

REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA

当UAC未运行时,此命令返回0x0,否则返回0x1。 但它还带来了我还不需要的其他无用的东西。

有没有可能只将0x0 / 0x1过滤成变量并将其保存到txt文件?

2 个答案:

答案 0 :(得分:1)

for /f "tokens=3" %%a in (
    'REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA'
) do set "UAC=%%a"

> "someFile.txt" echo %UAC%

for /f将执行命令,读取其输出并使用空格和制表符作为分隔符拆分行。我们要求第三个标记。由于reg命令的通常输出是

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
    EnableLUA    REG_DWORD    0x1

只有一行至少有三个令牌,因此只会处理此行。在我们请求第三个令牌时,0x1存储在for可替换参数中,该参数已分配给%UAC%变量。

然后,变量的值回显到指定的文件

答案 1 :(得分:0)

EnableLUA不是真正的UAC状态,它可能已过时。如果您在不重新启动的情况下更改UAC设置,则EnableLUA将为您提供错误的值。

据我所知,没有记录的方法可以获得当前的UAC状态......