如何编写一个批处理文件的脚本,该文件将通过以下方式检查是否启用了UAC:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA
如果结果为:
,则启用HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System EnableLUA REG_DWORD **0x1**)
如果结果为:
,则会被禁用HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System EnableLUA REG_DWORD **0x0**)
然后,脚本应根据结果运行不同的命令。
答案 0 :(得分:1)
您可以使用FIND
或FINDSTR
搜索一个或另一个值,并根据搜索结果调用命令。模式基本上是这样的:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA | (
FIND "0x1" >NUL
) && (
command(s)_to_run_when_UAC_is_enabled
) || (
command(s)_to_run_when_UAC_is_disabled
)
即。 REG
生成一个输出,使用“管道”(|
)传递给FIND
的输入。 FIND
在其输入中查找0x1
,并且根据搜索结果,执行以下括号内的命令块之一。
command && command || command
是一种标准机制,允许您有选择地运行命令,这是IF
的替代品。第一个命令产生一个结果。如果结果为“成功”,则&&
之后的命令运行,而||
之后的命令在失败的情况下运行。
如果您需要在两种情况下都执行操作,请在生成结果的命令后使用&&
和||
,但如果只应对一种结果做出反应,则可以省略&&
或||
。
答案 1 :(得分:1)
查看有关EnableLUA
here的Microsoft文档:
@echo off
for /f "skip=2 tokens=3" %%a in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA') do if "%%a" equ "0x0" (
rem When UAC is disabled
) ELSE (
rem When UAC is enabled
)