пытается получить пакет для вывода имен сетевых адаптеров для другого пакетного файла.пока это работает ...
@echo off
set ignore=true
for /F "delims=" %%a in ('netsh interface show interface')do call :Sub %%a
goto :eof
:sub
if not "%adapter1%" EQU "" goto :2
set Line=%*
if "%Line:~0,10%" EQU "----------" (set ignore=false & goto :eof)
if %ignore% EQU true goto :eof
for /F "tokens=4*" %%b in ('echo %*') do set Adapter1=%%b
echo %Adapter1%
goto :eof
)
:2
for /F "tokens=4*" %%c in ('echo %*') do set Adapter2=%%c
echo %adapter2%
pause
Но есть ли способ зациклить вторую часть, чтобы вывод продолжался с Adapter # = "Имя адаптера", пока не осталось адаптеров.
Я пытался использовать ..
set /a c=1
:sub
for /F "tokens=4*" %%c in ('echo %*') do (
set /a c=c+1
Set Adapter%c%=%%b
echo %adapter2%
)
пару проблем здесь, пытаясь вызвать переменную, состоящую из переменных, т.е..% Adaptor% c %%
, а другой -понятия не имею, как вернуться к следующей строке.
Я понимаю, что мог бы продолжать расширять это, но это было бы ужасно.
@echo off
set ignore=true
for /F "delims=" %%a in ('netsh interface show interface')do call :Sub %%a
goto :eof
:sub
if not "%adapter2%" EQU "" goto :3
if not "%adapter1%" EQU "" goto :2
set Line=%*
if "%Line:~0,10%" EQU "----------" (set ignore=false & goto :eof)
if %ignore% EQU true goto :eof
for /F "tokens=4*" %%b in ('echo %*') do set Adapter1=%%b
echo %Adapter1%
goto :eof
)
:2
for /F "tokens=4*" %%c in ('echo %*') do set Adapter2=%%c
echo %adapter2%
pause
:3
for /F "tokens=4*" %%c in ('echo %*') do set Adapter3=%%c
echo %adapter3%
pause
Разочарованный>. <, не могу получитьмоя голова вокруг того, как это должно работать.Любая помощь приветствуется.Спасибо </p>