O próximo trecho de código mostra como fazer obter o IF por MAC usando FOR /F
loop contra resultado de WMIC (Comando de Instrumentação de Gerenciamento do Windows) :
@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion
set "_maca=AA:AA:AA:AA:AA:AA" change to match your circumstances
set "_geta=InterfaceIndex^, MACAddress" to keep next lines in reasonable length
set "_ifin=" to ensure that '_ifin' variable is empty
for /F "tokens=1,*" %%G in ('
WMIC NIC where "MACAddress='%_maca%'" get %_geta% 2^>NUL ^| find ":"
') do set "_ifin=%%~G"
if defined _ifin (
rem route command block here:
route add 10.10.0.0 mask 255.255.0.0 10.77.77.1 if %_ifin% -p
) else (
echo %_maca%: No Instance^(s^) Available.
)
Recursos (leitura obrigatória):
- (referência de comando) Um índice A-Z da linha de comando do Windows CMD
- (particularidades adicionais) Sintaxe da linha de comando do shell do Windows CMD
- (
%~G
etc. página especial) Argumentos da linha de comando (parâmetros) - (
2>NUL
etc. página especial) Redirecionamento - (
"Double Quotes"
,^
Caret etc.) Caracteres, Delimitadores e Citações de Escape