Я делаю сценарий с некоторыми сетевыми функциями, и для его работы требуется специальная метка на сетевом адаптере, но в системе Windows сетевые адаптеры не используют то же имя, что и имя по умолчанию во всех версиях.
Я знаю, что могу использовать как «netsh» в пакете, так и powershell, чтобы переименовать сетевой адаптер, но я не могу знать текущее имя адаптера.
Это команда, которую я знаю, чтобы переименоватьАдаптер в пакете: netsh interface set interface name="Conexão Local 2" newname="Rede"
Я хочу использовать пакет, потому что скрипт был написан на языке пакетного ввода.
У меня есть команда, чтобы получить имена всех сетевых адпатеров: netsh interface ipv4 show interfaces
Возвращает:
Índ Met MTU Estado Nome
--- ---------- ---------- ------------ ---------------------------
1 75 4294967295 connected Loopback Pseudo-Interface 1
4 25 1500 disconnected Conexão Sem Fio
11 25 1500 disconnected Conexão Local* 9
15 35 1500 connected Conexão Local* 2
2 25 1500 disconnected Conexão Local* 14
Я мог бы использовать это, чтобы получить текущее имя по «"nd», показывая список в приглашении и вопрос, чтобы получить «"nd» число, затемсохранить текущее имя в переменной. Мне нужно переименовать беспроводное соединение и проводной адаптер.
РЕДАКТИРОВАТЬ
Я добился определенного прогресса и пришел к этому коду:
chcp 1252>NUL
setlocal EnableDelayedExpansion
set numlinha=1
FOR /F "skip=3 tokens=5,* delims= " %%A IN ('netsh interface ipv4 show interface') DO (
echo !numlinha! %%A %%B>> te.txt
set /a numlinha=!numlinha!+1
)
И это возвращается в файл test.txt:
1 Loopback Pseudo-Interface 1
2 Conexão de Rede sem Fio
3 Conexão de Rede sem Fio 2
4 Conexão Local
5 Conexão de Rede Bluetooth
Теперь пользователь выберет адаптер по номеру строки, и после этого сценарию потребуется получить все строки без номеров.