批处理 - 注册查询+如果存在不起作用?

问题描述:

我有一段代码,我想用批处理 - 注册查询+如果存在不起作用?

reg query HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall if %ERRORLEVEL% EQU 0 echo On 

这将检查如果防火墙是启用果真如此的话会响应“开”。 我尝试测试这个命令,但我的输出是:

ERROR: Invalid syntax. Type "REG QUERY /?" for usage.

有谁知道如何让这段代码的工作?

  • Luseres
+1

我不认为'REG query'命令在'errorlevel'写入注册表项的值环境变量我想你应该使用'for'来解析命令的输出。 – dcg

使用for你可以这样做:

@echo off 
for /f "tokens=3 delims= " %%i in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall') do (
    if "%%i" equ "0x1" (
     echo activated 
    ) else (
     echo not activated 
    ) 
) 
+0

感谢@dcg,是否还有一种方法可以在激活/未激活的输出上创建%firewall%? – Luseres

+0

@Luseres而不是打印,你可以创建一个像'set'firewall = activated/not activated''这样的变量。 – dcg

+0

谢谢@dcg我喜欢你想帮助我! – Luseres