使用批处理正则表达式将reg query命令的输出存储到一个变量中。

6

概述

我需要能够找到注册表键的DWORD值,并将变量设置为它,以便对其运行if语句。

如何仅获取reg查询的dword,以便在脚本的其余部分中使用它?

reg查询

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
2个回答

11

试试这个:

@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

4
这应该适用于你:

这对于您来说应该是有效的:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接