批处理正则表达式将reg query命令的输出转换为变量

时间:2013-07-01 19:26:50

标签: regex windows batch-file registry dword

摘要

我需要能够找到注册表项的DWORD值并为其设置一个变量来对其运行if语句。

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

注册查询

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

req查询输出

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

2 个答案:

答案 0 :(得分:9)

试试这个:

@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

答案 1 :(得分:3)

这应该适合你:

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

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