我正在尝试创建一个查找特定接口的批处理文件(它们的名称因计算机而异=查询)。为了找到接口,我使用该接口下的特定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
提前谢谢!
答案 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