批处理将reg查询命令的输出正则expression为一个variables

概要

我需要能够find一个registry项的DWORD值,并设置一个variables来运行一个if语句反对它。

我怎样才能抓住一个reg查询的dword,以便我可以在脚本的其余部分使用它?

注册查询

reg query HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall 

请求查询输出

 EnableFirewall REG_DWORD 0x1 

我需要抓住什么

0x1

伪代码

 query firewall reg value regex out DWORD value and set to variable var1 if var1 == 0x1 then do blah else do other blah 

尝试这个:

 @echo off &setlocal for /f "tokens=2*" %%a in ('reg query HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall') do set "var=%%b" if "%var%"=="0x1" (do this) else do that 

这应该为你工作:

 for /f "tokens=3" %%x in ('reg query HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall') do set FWSTATUS=%%x 

如果从命令行进行测试,请将%%x更改为%x