批次/ REG查询获得找到值的路径

时间:2018-11-16 15:28:16

标签: batch-file regedit

我正在尝试创建一个查找特定接口的批处理文件(它们的名称因计算机而异=查询)。为了找到接口,我使用该接口下的特定IP作为值。 此处的代码可以根据我插入“ IP-ADDRESS”中的IP查找有问题的接口。

但是我的最终目标是基于此搜索在此接口中添加两个注册表值,因此我需要路径。

如何根据下面的搜索获取到变量的路径?

for /f "tokens=3*" %%a in ('reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ /s /f "IP-ADDRESS"') do set Myvar=%%b

ECHO %Myvar%
PAUSE

提前谢谢!

2 个答案:

答案 0 :(得分:0)

以下批处理文件返回此处:

> Q:\Test\2018\11\16\SO_53340832.cmd
IPADDRESS:192.168.56.1 on interface:{4fe80965-dda5-466a-801d-14937fd3829c}

它使用"tokens=1,2*"和/ v IPADDRESS,但不带破折号。

:: Q:\Test\2018\11\16\SO_53340832.cmd
@Echo off & SetLocal EnableExtensions EnableDelayedExpansion

Set "Key=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
Set "Val=IPADDRESS"

For /f "tokens=1,2*" %%A in (
  'reg query "%Key%" /s /v "%Val%" ^| findstr /i "^HKEY %Val%"'
) Do if /i "%%A" neq "%Val%" (rem must be HKEY
    Set "Interface=%%A"
) Else (
    Echo %VAL%:%%C on interface:!Interface:%Key%\=!
)

答案 1 :(得分:0)

这是您的一种可能性:

@Echo Off
Set "RKP=HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
Set "RVD=172.26.193.3"
Set "RKC="

For /F "Delims=}" %%A In ('Reg Query "%RKP%" /S /F "%RVD%" /D 2^>Nul'
) Do If Not Defined RKC Set "RKC=%%A}"

If Not Defined RKC Exit /B

Rem show the variable and value for five seconds
Set RKC
Timeout 5 >Nul