2016-10-21 2 views
0

Я часто активирую брандмауэры на своей работе, и большую часть времени я нахожусь на ноутбуке. Мне больно использовать верхний ряд чисел, потому что я привык к полной раскладке клавиатуры. Переход в свойства сетевого адаптера несколько раз и изменение статического IP-адреса - не забава. Я не просто хотел создать скрипт, который будет использоваться на моем компьютере. Я хотел, чтобы наши другие технические специалисты получили доступ к нему. Если вы это сделаете, это будет пуля. Мне просто нужна помощь с одним разделом кода, и у меня все остальное. Я хотел бы повторить интерфейсы адаптера Net и дать пользователю возможность адаптера изменить до предоставления вариантов модификации.Многолинейные переменные

Я не знаю, если это вообще возможно, но это то, что я хотел бы, чтобы распечатать, чтобы посмотреть на конечного пользователя:

nic1

NIC2

NIC3

Выбрать ваша сетевая карта:

Возможно ли что-нибудь подобное? Любой вход был бы оценен.

РЕЗЮМЕ: Запрос и печать всех адаптеров, добавляющих числовое значение для каждого. Пользователь вводит значение, связанное с адаптером. Это сбрасывает имя интерфейса в переменную. Я беру это оттуда.

@echo off 
for /f "skip=3 tokens=1-4 delims= " %%a in ('netsh interface show interface') do (
    @echo %%d %%b %%a 
) 

Это отобразит информацию, которую я хочу, но теперь, как я ее хочу. Есть ли способ, чтобы каждая строка отображала переменную себе?

Ex. Вместо каждой переменной (%% a, %% b, %% c, %% d) отображаются все строки в токене, есть ли способ отобразить одну строку на токен на переменную? Затем пользователь может ввести назначенную переменную этой конкретной строки, чтобы указать, какой сетевой адаптер будет изменен остальной частью сценария.

+0

Проведите анализ команды 'NETSH'. 'netsh interface show interface' – Squashman

+2

Пожалуйста, просмотрите свой вопрос с более подробной информацией о вводимых данных и желаемых результатах. Ваш вопрос слишком важен, и есть много ненужного объяснения по неважным предметам. – cyberponk

+0

Я добавил резюме, чтобы помочь с моим блужданием. –

ответ

0

Добавить счетчик цикла для получения индекса, вы можете выбрать более поздний и установить переменную для каждого интерфейса.

for /l устанавливает допустимые параметры для choice в зависимости от доступных адаптеров.

@echo off 
setlocal enabledelayedexpansion 
set count=0 
for /f "skip=3 tokens=1-4 delims= " %%a in ('netsh interface show interface') do (
    set /a count+=1 
    set interface[!count!]=%%d %%b %%a 
    @echo !count! %%d %%b %%a 
) 
for /l %%i in (1,1,%count%) do set number=!number!%%i 
choice /c %number% /m "type index number" 
set index=%errorlevel% 
echo you choosed adapter %index%: !interface[%index%]! 
+0

Большое вам спасибо, я понятия не имел о счетчике. –