Batch file 批量注册查询+;如果存在不一起工作?

Batch file 批量注册查询+;如果存在不一起工作?,batch-file,echo,registrykey,Batch File,Echo,Registrykey,我有一段代码要用 reg query HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall if %ERRORLEVEL% EQU 0 echo On 这将检查防火墙是否启用,如果启用,它将回显“On”。 我尝试测试此命令,但我的输出为: 错误:无效语法。 键入“REG QUERY/?”了解用法 有人知道如何让这个代码工作吗

我有一段代码要用

reg query HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall if %ERRORLEVEL% EQU 0 echo On
这将检查防火墙是否启用,如果启用,它将回显“On”。 我尝试测试此命令,但我的输出为:

错误:无效语法。 键入“REG QUERY/?”了解用法

有人知道如何让这个代码工作吗

  • 卢塞雷斯

使用
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
    )
)

使用
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
    )
)

我认为
reg query
命令不会在
errorlevel
环境变量中写入注册表项的值。我认为应该使用
for
来解析命令的输出。我认为
reg query
命令不会在
errorlevel
环境变量中写入注册表项的值。我认为您应该使用
for
来解析命令的输出。谢谢@dcg,还有没有办法使%firewall%在激活/未激活的输出上变为可值?@Luseres您可以创建一个变量,例如
设置“firewall=activated/not activated”
。谢谢@dcg我喜欢您想要帮助我!谢谢@dcg,还有没有办法使%firewall%在激活/未激活的输出上变为可值?@Luseres您可以创建一个变量,如so
set“firewall=activated/not activated”
。谢谢@dcg我喜欢您想要帮助我!