|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Сетевые технологии » как загнать имена всех "Подключение по локальной сети" в переменные ? |
|
|
как загнать имена всех "Подключение по локальной сети" в переменные ?
|
Старожил Сообщения: 440 |
Профиль | Отправить PM | Цитировать с помощью команды "netsh interface show interface" можно получить названия всех сетевых интерфейсов.
А мне бы хотелось создать в батнике переменные которые содержали б в себе эти названия, как бы их туда запихнуть ? |
|
Отправлено: 23:14, 29-06-2006 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Можно чуть подробнее о том, как это в конечном счёте должно выглядеть?
Ну вот я выполняю такой батник, в его конце я вызываю set. И что там должно быть на выводе? ALLUSERSPROFILE=C:\Documents and Settings\All Users APPDATA=C:\Documents and Settings\hasherfrog\Application Data Basemake=C:\Program Files\Microsoft SDK\Include\BKOffice.Mak Bkoffice=C:\Program Files\Microsoft SDK\. CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=*** ComSpec=C:\WINDOWS\system32\cmd.exe ... Вот тут чего-то такое-эдакое. Что? ... |
Отправлено: 10:19, 06-07-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать Че то я не совсем понял вопрос.
вообщем суть вот в чем: после выполнения батника с таким вот кодом получаем следущее на экране (в моем конкретном случае) Состояние адм. Состояние Тип Имя интерфейса --------------------------------------------------------------------- Разрешен Выделенный 1394-соединение Разрешен Выделенный VMware Network Adapter VMnet1 Разрешен Выделенный Подключение по локальной сети Разрешен Выделенный VMware Network Adapter VMnet8 Разрешен Внутренний Внутренний Разрешен Замыкание на себя Замыкание на себя дак вот мне надо как-то риализовать следующие set lan1=1394-соединение set lan2=VMware Network Adapter VMnet1 set lan3=Подключение по локальной сети и т.д. надеюсь прояснил ситуацию |
Отправлено: 01:49, 07-07-2006 | #3 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать mitiya
Ясно. А нужны именно ВСЕ? Или можно только "Выделенный", например? И ещё. Вам обязательно bat? Может, vbs? А то громоздко очень получается... |
Последний раз редактировалось hasherfrog, 07-07-2006 в 12:50. Отправлено: 10:14, 07-07-2006 | #4 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать @echo off if exist "___1.tmp" del "___1.tmp" for /f "TOKENS=3-9 DELIMS= " %%A in ('netsh interface show interface ^| find "Выделенный"') do echo %%A %%B %%C %%D %%E %%F %%G >> ___1.tmp SET N=0 for /f "tokens=* eol=" %%A in (___1.tmp) do SET /A N+=1 set i=0 :again if "%I%" == "%N%" goto end if exist "___2.tmp" del "___2.tmp" if "%I%" == "0" ( for /f "tokens=* eol=" %%A in (___1.tmp) do ( if not exist "___2.tmp" ( Set C=%%A echo "" > ___2.tmp ) ) ) else ( for /f "skip=%I% tokens=* eol=" %%A in (___1.tmp) do ( if not exist "___2.tmp" ( Set C=%%A echo "" > ___2.tmp ) ) ) set /A I+=1 SET Lan%I%=%C% goto again :end del ___1.tmp del ___2.tmp set | find "Lan" 1. Переменные окружения не экспортируются, не забыли? Действуют только внутри батника. Чтобы проэкспортировать их (вывести за пределы батника), используйте специальные утилиты. 2. Фиксируются только "Выделенные" интерфейсы. Проверка идёт по слову "Выделенный" после "^| find". Если вдруг не работает, убедитесь, что написано слово в _правильной_ кодировке. |
|
Отправлено: 14:01, 07-07-2006 | #5 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать Спасибо большёе.
Работает. Только не понятно как :-) |
Отправлено: 02:00, 09-07-2006 | #6 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать обнаружилась маленькая проблемка
значение в переменную записывается с пробелами в конце ,а надо без т.е. вот как получается "Подключение по локальной сети " а вот как должно "Подключение по локальной сети" у названий с разной длинной разное количество пробелов (такчто не удасться просто отрезать) |
Отправлено: 02:30, 09-07-2006 | #7 |
(*.*) Сообщения: 36491
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
|
|
------- Отправлено: 04:35, 09-07-2006 | #8 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать >> обнаружилась маленькая проблемка
Решение загромоздит текст, но вот: @echo off if exist "___1.tmp" del "___1.tmp" for /f "TOKENS=3-9 DELIMS= " %%A in ('netsh interface show interface ^| find "Выделенный"') do ( if "%%B" == "" ( echo %%A>> ___1.tmp ) else ( if "%%C" == "" ( echo %%A %%B>> ___1.tmp ) else ( if "%%D" == "" ( echo %%A %%B %%C>> ___1.tmp ) else ( if "%%E" == "" ( echo %%A %%B %%C %%D>> ___1.tmp ) else ( if "%%F" == "" ( echo %%A %%B %%C %%D %%E>> ___1.tmp ) else ( if "%%G" == "" ( echo %%A %%B %%C %%D %%E %%F>> ___1.tmp ) else ( echo %%A %%B %%C %%D %%E %%F %%G>> ___1.tmp ) ) ) ) ) ) ) SET N=0 for /f "tokens=* eol=" %%A in (___1.tmp) do SET /A N+=1 set i=0 :again if "%I%" == "%N%" goto end if exist "___2.tmp" del "___2.tmp" if "%I%" == "0" ( for /f "tokens=* eol=" %%A in (___1.tmp) do ( if not exist "___2.tmp" ( Set C=%%A echo "" > ___2.tmp ) ) ) else ( for /f "skip=%I% tokens=* eol=" %%A in (___1.tmp) do ( if not exist "___2.tmp" ( Set C=%%A echo "" > ___2.tmp ) ) ) set /A I+=1 SET Lan%I%=%C% goto again :end if exist "___1.tmp" del "___1.tmp" if exist "___2.tmp" del "___2.tmp" set | find "Lan" "Интересность" тут одна: выставление флажка внутри for-цикла (). Решается двумя способами: заменой for на if-goto (когда возможно) либо использование флажка "есть файл" (когда невозможно). Есть ещё один вариант обхода - подпрограммы (в том чисте, подпрограммы прямо внутри данного батника), но я не стал это тут втыкать. :-) А в принципе, Vadikan описал что да как. Почему "интересность" - потому что внутри for-цикла крайне проблематично использовать переменные окружения ;-) |
Отправлено: 21:58, 09-07-2006 | #9 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать Круто, работает. Ох спасибо ,спасибо.
|
Отправлено: 22:16, 09-07-2006 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Настройка "Подключения по локальной сети" с помощью CMD | Oleg48 | Скриптовые языки администрирования Windows | 94 | 22-08-2013 17:36 | |
[решено] Переменные среды папок "Мои рисунки", "Моя музыка" или общие | Redew | Автоматическая установка Windows 2000/XP/2003 | 9 | 03-10-2009 20:43 | |
[решено] Доступ к локальной сети через входящее "Dial up" подключение | Eugene R | Microsoft Windows NT/2000/2003 | 6 | 10-03-2009 09:54 | |
Прочее - Есть другой способ отключить "подключение по локальной сети"? | Easyup | Сетевые технологии | 2 | 10-12-2007 09:42 | |
Сообщение "В сети существуют совпадающие имена" | Ser6720 | Хочу все знать | 5 | 06-05-2007 13:03 |
|