![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка состояния Wi-Fi и уровня его сигнала |
|
CMD/BAT - [решено] Проверка состояния Wi-Fi и уровня его сигнала
|
![]() Новый участник Сообщения: 30 |
Есть код для проверки состояния Wi-Fi и уровня его сигнала:
Скрытый текст
@Echo Off SetLocal EnableExtensions & REM Использование дополнительных ключей. Chcp 1251 >Nul Title Проверка состояния Wi-Fi и уровня его сигнала. Mode Con: Cols=78 Lines=9 Set Count=1 :Check For %%n In ("Имя" "Состояние:" " SSID" "Сигнал") Do ( For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces ^| Find /i %%n') Do ( If %%n=="Имя" ( Set "Name=%%b" ) If %%n=="Состояние:" ( Set "State=%%b" ) If %%n==" SSID" ( Set "SSID=%%b" ) If %%n=="Сигнал" ( Set "Signal=%%b" ) ) ) Echo Проверок : %Count% Echo. Echo Имя : %Name% Echo SSID : %SSID% Echo Состояние : %State% Echo Сигнал : %Signal% Echo. Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала. Set /a Count+=1 Pause >Nul Goto Check Вопрос: Как получить более чувствительные данные, а то замечаю инфа очень медленно обновляется и вовсе не точно по сравнении с программой "Wi-Fi Scanner"? Скорость не важна Важно: только четыре строчки "Имя, SSID, Состояние, Сигнал, Наглядный (не разбросанный) обзор выводимой инфы ну и наипростейший код". Менее важно: "Количество проверок, Дата и Время конечной проверки и Только нужный размер окна консоли". Наименее важно: "Заголовок окна консоли". Ну и если получится (очень важно) рабочий код написанный с использованием кодовой таблицы 65001 (UTF-8) то-есть код должен быть сохранен именно в этой кодировке. Благодаря всем неравнодушным резальтат был добит таким кодом: Русская версия (исправленная 24.11.2020)
@Echo Off REM WLAN (Wireless Local Area Network) — беспроводная локальная сеть. REM Wi-Fi (Wireless Fidelity) — это название торгового бренда, которое используется для обозначения устройств, подключаемых к беспроводной сети. REM Чаще всего термин WiFi рассматривается как синоним WLAN. Chcp 65001 >Nul REM Получение нужного размера окна Mode Con: Cols=80 LInes=43 Title Вывод информации о подключенной WLAN (русская версия). REM Указание размещения файла с базой данных Set "DataBase=DataBase.txt" REM Set "DataBase=DataBaseRus.txt" Set Count=1 :Check SetLocal EnableExtensions REM Строки для физического и виртуального (с подменой Netsh Wlan Show Interfaces на когда-то полученные) тестирований REM For /f "Eol=; Tokens=1-3*" %%a In (WiFi2.txt) Do Set "A1=%%a"& Set "B2=%%b"& Set "C3=%%c"& Set "D4=%%d"& Call :M1 For /f "Tokens=1-3*" %%a In ('Netsh Wlan Show Interfaces') Do Set "A1=%%a"& Set "B2=%%b"& Set "C3=%%c"& Set "D4=%%d"& Call :M1 REM Перевод строк которые можно перевести If "%Interface%"=="There is no wireless interface on the system." Set "Interface=Беспроводной интерфейс в системе отсутствует." If "%Interface%"=="The Wireless AutoConfig Service (wlansvc) is not running." Set "Interface=Служба автонастройки беспроводной сети (wlansvc) не запущена." If "%Interface%"=="There is 1 interface on the system:" Set "Interface=В системе 1 интерфейс:" If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%Interface:~10%"& Call :M3 If "%Interface%"=="There are %N% interfaces on the system:" Set "Interface=В системе %N% интерфейс%Ending%:" If "%State%"=="connected" Set "State=Подключено" If "%State%"=="disconnected" Set "State=Отключено" If "%State%"=="ad hoc network formed" Set "State=Создана сеть компьютер-компьютер" If "%RadioStatus%"=="Hardware On" Set "RadioStatus=Оборудование вкл." If "%RadioStatus2%"=="Software On" Set "RadioStatus2=Программное обеспечение вкл." If "%NetworkType%"=="Infrastructure" Set "NetworkType=Инфраструктура" If "%NetworkType%"=="Adhoc" Set "NetworkType=Прямое соединение" If "%ConnectionMode%"=="Auto Connect" Set "ConnectionMode=Автоматическое подключение" If "%ConnectionMode%"=="Profile" Set "ConnectionMode=Профиль" If "%HostedNetworkStatus%"=="Not available" Set "HostedNetworkStatus=Недоступно" If "%HostedNetworkStatus%"=="Not started" Set "HostedNetworkStatus=Не запущено" If "%HostedNetworkStatus%"=="Started" Set "HostedNetworkStatus=Запущено" REM Вывод возможной информации в окне консоли Echo. Echo Проверка : %Count% Echo Дата : %Date% Echo Время : %Time% Echo. Echo %Interface% Echo. Echo Имя : %Name% Echo Описание : %Description% Echo Идентификатор GUID : %GUID% Echo Физический адрес : %PhysicalAddress% Echo Состояние : %State% Echo Cостояние радио : %RadioStatus% Echo. %RadioStatus2% Echo SSID : %SSID% Echo BSSID : %BSSID% Echo Тип сети : %NetworkType% Echo Тип радио : %RadioType% Echo Проверка подлинности : %Authentication% Echo Шифр : %Cipher% Echo Режим подключения : %ConnectionMode% Echo Канал : %Channel% Echo Скорость приема (Мбит/с) : %ReceiveRate% Echo Скорость передачи (Мбит/с) : %TransmitRate% Echo Сигнал : %Signal% Echo Профиль : %Profile% Echo. Echo Состояние размещенной сети : %HostedNetworkStatus% If Exist %DataBase% ( REM Вывод с использованием базы данных: Echo Клиенты в размещенной сети : %Client1% Echo. %Client2% Echo. %Client3% Echo. %Client4% Echo. %Client5% Echo. %Client6% Echo. %Client7% Echo. %Client8% Echo. %Client9% Echo. %Client10% ) Else ( REM Или стандартный вывод ^(если не нужно использование базы данных^): Echo Клиенты в размещенной сети : %HostedNetworkClient1% Echo. %HostedNetworkClient2% Echo. %HostedNetworkClient3% Echo. %HostedNetworkClient4% Echo. %HostedNetworkClient5% Echo. %HostedNetworkClient6% Echo. %HostedNetworkClient7% Echo. %HostedNetworkClient8% Echo. %HostedNetworkClient9% Echo. %HostedNetworkClient10%) Echo. Echo.%ClientsLimitReached% Echo. Echo Нажмите любую клавишу, чтобы обновить информацию о подключенной WLAN. Pause >Nul Set /a Count+=1 REM Обнуление всех выше указанных переменных до метки [:Check] EndLocal & Set Count=%Count% Goto Check :M1 REM Блокировка приёма данных от второго и более интерфейсов (следующие две строки) %E% If %A1%==Name If DefIned Name Set "E=Exit /b"& Exit /b REM Создание переменных [%Interface%] If Not DefIned Interface (If "%D4:~-1%"==" " ( Set "Interface=%A1% %B2% %C3% %D4:~0,-1%"& Exit /b ) Else Set "Interface=%A1% %B2% %C3% %D4%"& Exit /b) REM Создание переменных [%с одним словом или символом, кроме двоеточия%] If "%B2%"==":" If Not DefIned %A1% ( If "%D4%"=="" Set "%A1%=%C3%"& Exit /b If Not "%D4%"=="" Set "%A1%=%C3% %D4%"& Exit /b) REM Создание переменных [%с двумя словами или символами, кроме двоеточия%] If Not DefIned %A1%%B2% ( If "%C3%"==":" Set "%A1%%B2%=%D4%"& Exit /b REM Создание переменных [%ReceiveRate%] и [%TransmitRate%] If "%B2%"=="rate" Set "%A1%%B2%=%D4:~2%"& Exit /b) REM Создание переменной [%RadioStatus2%] If DefIned RadioStatus If Not DefIned RadioStatus2 Set "RadioStatus2=%A1% %B2%"& Exit /b REM Создание переменных [%с тремя словами или символами, кроме двоеточия%] If Not DefIned %A1%%B2%%C3% Set "%A1%%B2%%C3%=%D4:~2%" REM Продолжение работы для создания переменных [%HostedNetworkClients(1-10)%], [%Client(1-10)%] и [%ClientsLimitReached%] If Not DefIned HostedNetworkClients Exit /b REM Выдача чисел от 9 до 1 для создания переменных [%HostedNetworkClients(1-10)%], [%Client(1-10)%] и [%ClientsLimitReached%] For /l %%a In (10,-1,1) Do Call :M2 %%a& If DefIned HostedNetworkClient%%a Exit /b :M2 Set /a min=%1-1 REM Создание переменных [%HostedNetworkClients10%], [%Client10%] и [%ClientsLimitReached%] If %min% EQU 9 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 ( set "ClientsLimitReached=Достигнут предел отображения клиентов в размещенной сети ^(не более 10^)" Set HostedNetworkClient%1=%A1% For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a ( Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клиент [%A1%] не найден в базе данных" Exit /b) REM Создание переменных [%HostedNetworkClients(2-9)%] и [%Client(2-9)%] If %min% LSS 9 If %min% GTR 0 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 ( Set HostedNetworkClient%1=%A1% For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a ( Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клиент [%A1%] не найден в базе данных" Exit /b) REM Создание переменных [%HostedNetworkClients1%] и [%Client1%] If %min% EQU 0 If DefIned HostedNetworkClients If Not DefIned HostedNetworkClient%1 ( Set HostedNetworkClient%1=%HostedNetworkClients% For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %HostedNetworkClients%==%%a ( Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клиент [%HostedNetworkClients%] не найден в базе данных" Exit /b ) Exit /b :M3 REM Добавление правильного окончания к слову [интерфейс] в зависимости от количества If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%N:~0,-26%" If %N% LEQ 9 ( If %N% EQU 0 Set Ending=ов& Exit /b If %N% EQU 1 Set Ending=& Exit /b If %N% GEQ 2 If %N% LEQ 4 Set Ending=а& Exit /b If %N% GEQ 5 If %N% LEQ 9 Set Ending=ов& Exit /b) If %N% GTR 9 ( If %N:~-2,1% EQU 1 Set Ending=ов& Exit /b If %N:~-2,1% GEQ 2 ( If %N:~-1% EQU 0 Set Ending=ов& Exit /b If %N:~-1% EQU 1 Set Ending=& Exit /b If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=а& Exit /b If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ов& Exit /b) If %N:~-2,1% EQU 0 ( If %N:~-1% EQU 0 Set Ending=ов& Exit /b If %N:~-1% EQU 1 Set Ending=& Exit /b If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=а& Exit /b If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ов& Exit /b) ) Українська версія (випрвлена 24.11.2020)
@Echo Off REM WLAN (Wireless Local Area Network) — бездротова локальна мережа. REM Wi-Fi (Wireless Fidelity) — це назва торгового бренду, яка використовується для позначення пристроїв, що підключаються до бездротової мережі. REM Найчастіше термін WiFi розглядається як синонім WLAN. Chcp 65001 >Nul Mode Con: Cols=83 LInes=43 Title Виведення інформації про підключену WLAN (українська версія). Set "DataBase=DataBase.txt" REM Set "DataBase=DataBaseUkr.txt" Set Count=1 :Check SetLocal EnableExtensions For /f "Tokens=1-3*" %%a In ('Netsh Wlan Show Interfaces') Do Set "A1=%%a"& Set "B2=%%b"& Set "C3=%%c"& Set "D4=%%d"& Call :M1 If "%Interface%"=="There is no wireless interface on the system." Set "Interface=Бездротовий інтерфейс в системі відсутній." If "%Interface%"=="The Wireless AutoConfig Service (wlansvc) is not running." Set "Interface=Служба автоналаштування бездротової мережі (wlansvc) не запущена." If "%Interface%"=="There is 1 interface on the system:" Set "Interface=В системі 1 інтерфейс:" If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%Interface:~10%"& Call :M3 If "%Interface%"=="There are %N% interfaces on the system:" Set "Interface=В системі %N% інтерфейс%Ending%:" If "%State%"=="connected" Set "State=Підключено" If "%State%"=="disconnected" Set "State=Відключено" If "%State%"=="ad hoc network formed" Set "State=Створена мережа комп'ютер-комп'ютер" If "%RadioStatus%"=="Hardware On" Set "RadioStatus=Обладнання вкл." If "%RadioStatus2%"=="Software On" Set "RadioStatus2=Програмне забезпечення вкл." If "%NetworkType%"=="Infrastructure" Set "NetworkType=Інфраструктура" If "%NetworkType%"=="Adhoc" Set "NetworkType=Пряме з'єднання" If "%ConnectionMode%"=="Auto Connect" Set "ConnectionMode=Автоматичне підключення" If "%ConnectionMode%"=="Profile" Set "ConnectionMode=Профіль" If "%HostedNetworkStatus%"=="Not available" Set "HostedNetworkStatus=Недоступно" If "%HostedNetworkStatus%"=="Not started" Set "HostedNetworkStatus=Не запущено" If "%HostedNetworkStatus%"=="Started" Set "HostedNetworkStatus=Запущено" Echo. Echo Перевірка : %Count% Echo Дата : %Date% Echo Час : %Time% Echo. Echo %Interface% Echo. Echo Ім'я : %Name% Echo Опис : %Description% Echo Ідентифікатор GUID : %GUID% Echo Фізична адреса : %PhysicalAddress% Echo Стан : %State% Echo Стан радіо : %RadioStatus% Echo. %RadioStatus2% Echo SSID : %SSID% Echo BSSID : %BSSID% Echo Тип мережі : %NetworkType% Echo Тип радіо : %RadioType% Echo Перевірка автентичності : %Authentication% Echo Шифр : %Cipher% Echo Режим підключення : %ConnectionMode% Echo Канал : %Channel% Echo Швидкість прийому (Мбіт/с) : %ReceiveRate% Echo Швидкість передачі (Мбіт/с) : %TransmitRate% Echo Сигнал : %Signal% Echo Профіль : %Profile% Echo. Echo Стан розміщеної мережі : %HostedNetworkStatus% If Exist %DataBase% ( REM Виведення з використанням бази даних: Echo Клієнти в розміщеній мережі : %Client1% Echo. %Client2% Echo. %Client3% Echo. %Client4% Echo. %Client5% Echo. %Client6% Echo. %Client7% Echo. %Client8% Echo. %Client9% Echo. %Client10% ) Else ( REM Або стандартне виведення ^(якщо не потрібно використання бази даних^): Echo Клієнти в розміщеній мережі : %HostedNetworkClient1% Echo. %HostedNetworkClient2% Echo. %HostedNetworkClient3% Echo. %HostedNetworkClient4% Echo. %HostedNetworkClient5% Echo. %HostedNetworkClient6% Echo. %HostedNetworkClient7% Echo. %HostedNetworkClient8% Echo. %HostedNetworkClient9% Echo. %HostedNetworkClient10%) Echo. Echo.%ClientsLimitReached% Echo. Echo Натисніть будь-яку клавішу, щоб оновити інформацію про підключену WLAN. Pause >Nul Set /a Count+=1 EndLocal & Set Count=%Count% Goto Check :M1 %E% If %A1%==Name If DefIned Name Set "E=Exit /b"& Exit /b If Not DefIned Interface (If "%D4:~-1%"==" " ( Set "Interface=%A1% %B2% %C3% %D4:~0,-1%"& Exit /b ) Else Set "Interface=%A1% %B2% %C3% %D4%"& Exit /b) If "%B2%"==":" If Not DefIned %A1% ( If "%D4%"=="" Set "%A1%=%C3%"& Exit /b If Not "%D4%"=="" Set "%A1%=%C3% %D4%"& Exit /b) If Not DefIned %A1%%B2% ( If "%C3%"==":" Set "%A1%%B2%=%D4%"& Exit /b If "%B2%"=="rate" Set "%A1%%B2%=%D4:~2%"& Exit /b) If DefIned RadioStatus If Not DefIned RadioStatus2 Set "RadioStatus2=%A1% %B2%"& Exit /b If Not DefIned %A1%%B2%%C3% Set "%A1%%B2%%C3%=%D4:~2%" If Not DefIned HostedNetworkClients Exit /b For /l %%a In (10,-1,1) Do Call :M2 %%a& If DefIned HostedNetworkClient%%a Exit /b :M2 Set /a min=%1-1 If %min% EQU 9 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 ( set "ClientsLimitReached=Досягнута межа відображення клієнтів у розміщеній мережі ^(не більше 10^)" Set HostedNetworkClient%1=%A1% For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a ( Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клієнт [%A1%] не знайдений в базі даних" Exit /b) If %min% LSS 9 If %min% GTR 0 If DefIned HostedNetworkClient%min% If Not DefIned HostedNetworkClient%1 ( Set HostedNetworkClient%1=%A1% For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %A1%==%%a ( Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клієнт [%A1%] не знайдений в базі даних" Exit /b) If %min% EQU 0 If DefIned HostedNetworkClients If Not DefIned HostedNetworkClient%1 ( Set HostedNetworkClient%1=%HostedNetworkClients% For /f "Eol=; Tokens=1* Delims==" %%a In (%DataBase%) Do If %HostedNetworkClients%==%%a ( Set "Client%1=%%b"& Exit /b) Else Set "Client%1=Клієнт [%HostedNetworkClients%] не знайдений в базі даних" Exit /b ) Exit /b :M3 If "%Interface:~-26%"==" interfaces on the system:" If "%Interface:~0,10%"=="There are " Set "N=%N:~0,-26%" If %N% LEQ 9 ( If %N% EQU 0 Set Ending=ів& Exit /b If %N% EQU 1 Set Ending=& Exit /b If %N% GEQ 2 If %N% LEQ 4 Set Ending=и& Exit /b If %N% GEQ 5 If %N% LEQ 9 Set Ending=ів& Exit /b) If %N% GTR 9 ( If %N:~-2,1% EQU 1 Set Ending=ів& Exit /b If %N:~-2,1% GEQ 2 ( If %N:~-1% EQU 0 Set Ending=ів& Exit /b If %N:~-1% EQU 1 Set Ending=& Exit /b If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=и& Exit /b If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ів& Exit /b) If %N:~-2,1% EQU 0 ( If %N:~-1% EQU 0 Set Ending=ів& Exit /b If %N:~-1% EQU 1 Set Ending=& Exit /b If %N:~-1% GEQ 2 If %N:~-1% LEQ 4 Set Ending=и& Exit /b If %N:~-1% GEQ 5 If %N:~-1% LEQ 9 Set Ending=ів& Exit /b) ) Вдобавок выкладу созданные исполняемые файлы скомпилированные программой "Bat To Exe Converter v3.2.0.0" с использованием только этих кодов и иконки, с названием в шапке справа "WLAN Info En-Ru-Ua 1.0.rar" MD5 хеш-сумма f5a4787be51a858a1b876495e0966f3c |
|
Отправлено: 23:21, 07-11-2020 |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Цитата alpap:
Важно: только четыре строчки "Имя, SSID, Состояние, Сигнал, Наглядный (не разбросанный) обзор выводимой инфы ну и наипростейший код", менее важно: "Количество проверок, Дата и Время конечной проверки и Только нужный размер окна консоли", и наименее важно: "Заголовок окна консоли". Цитата alpap:
Заранее благодарен. |
|||
Отправлено: 18:36, 12-11-2020 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Далее не углублялся но думаю где то можно что то и упростить. Если долго мучится что то и получится. |
|
Отправлено: 19:07, 12-11-2020 | #22 |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Ура все требования соблюдены!!!
@Echo Off SetLocal EnableExtensions & REM Использование дополнительных ключей. Chcp 65001 >Nul Title Проверка состояния Wi-Fi и уровня его сигнала. Mode Con: Cols=78 Lines=11 Set Count=1 :Check For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces') Do Set "%%a=%%b" Echo Проверка : %Count% Echo Дата : %Date% Echo Время : %Time% Echo. Echo Имя : %Name% Echo SSID : %SSID% If %State%==connected Echo Состояние : подключено If %State%==disconnected Echo Состояние : отключено Echo Сигнал : %Signal% Echo. Echo Нажмите любую клавишу для обновления информации о состоянии и уровне сигнала. Set /a Count+=1 Pause >Nul Goto Check Без Вас я бы такого не добился. Если кто упростит соблюдая все требования тот будет ещё лучшым. |
Отправлено: 19:47, 12-11-2020 | #23 |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Ребята как Вы думаете результат добит или ешё что можно упростить или как то усовершенствовать?
![]() ![]() |
Отправлено: 21:32, 12-11-2020 | #24 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата wareznik3dll:
Цитата wareznik3dll:
Цитата wareznik3dll:
а ведь если будет такой запрос (там еще много: Network type, Radio type, ...) |
|||
Отправлено: 23:15, 12-11-2020 | #25 |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
требования могут поменяться Нет В шапке указал требования: Важно: только четыре строчки "Имя, SSID, Состояние, Сигнал, Наглядный (не разбросанный) обзор выводимой инфы ну и наипростейший код". Менее важно: "Количество проверок, Дата и Время конечной проверки и Только нужный размер окна консоли". Наименее важно: "Заголовок окна консоли". Ну и если получится (очень важно) рабочий код написанный с использованием кодовой таблицы 65001 (UTF-8) то-есть код должен быть сохранен именно в этой кодировке. |
|
Последний раз редактировалось wareznik3dll, 12-11-2020 в 23:45. Отправлено: 23:40, 12-11-2020 | #26 |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать смысл совершенствовать кривой код, добавьте вывод например:
Извените я терпел Ваши слова кривой код тут и там, даже каждый раз пытался исправлять и думаю исправил. Вы на томесть ни разу не исправляли мои весомые указания на Ваши косяки которые действительно косяки например зачем: ('Netsh Wlan Show Interfaces ^| findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:"SSID" /c:"Сигнал:" ^| find.exe /i /v "BSSID"') ('Netsh Wlan Show Interfaces ^| findstr.exe /i /r /c:"Имя:" /c:"Состояние:" /c:" SSID" /c:"Сигнал:"') В дальнейшем попрошу после Ваших слов: кривой код сражу же указать на этот кривой код а не просто Бла-бла так как зделал выше и уже втретий раз. |
Отправлено: 00:01, 13-11-2020 | #27 |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Скрытый текст
@Echo Off SetLocal EnableExtensions & REM Использование дополнительных ключей. Chcp 65001 >Nul Title Check Wi-Fi status and signal strength. Set Count=1 REM Не используйте (удалите) эту и три нижние строки если Вам уже не нужно сравнивать сходство. Mode Con: Cols=68 Lines=53 Netsh Wlan Show Interfaces Echo -------- В верху оригинал --------- С низу результат кода -------- :Check For /f "Tokens=1,* Delims=: " %%a In ('Netsh Wlan Show Interfaces') Do ( For /f "Tokens=1,* Delims=:" %%c In ("%%b") Do ( If Not "%%d"=="" (Set "%%a=%%d") Else (Set "%%a= %%b") If "%%a"=="BSSID" Set "BSSID= %%b" If "%%a"=="There" Set "There=%%a %%b" ) ) REM Раскомментируйте нижнюю строку если не надо сравнивать, либо же закомментируйте её если желаете сравнить сходство. REM Mode Con: Cols=68 Lines=29 Echo. Echo Check : %Count% Echo Date : %Date% Echo Time : %Time% Echo. Echo %There% Echo. Echo Name :%Name% Echo Description :%Description% Echo GUID :%GUID% Echo Physical address :%Physical% Echo State :%State% Echo SSID :%SSID% Echo BSSID :%BSSID% Echo Network type :%Network% Echo Radio type :%Radio% Echo Authentication :%Authentication% Echo Cipher :%Cipher% Echo Connection mode :%Connection% Echo Channel :%Channel% Echo Receive rate (Mbps) :%Receive% Echo Transmit rate (Mbps) :%Transmit% Echo Signal :%Signal% Echo Profile :%Profile% Echo. Echo Hosted network status :%Hosted% Echo. Echo Press any key to update the status and signal strength information. Set /a Count+=1 Pause >Nul Goto Check Ну а для случая попроще как в моём вполне подойдет и тот что уже есть Name :%Name% Description :%Description% GUID :%GUID% Physical address :%Physical% State :%State% SSID :%SSID% BSSID :%BSSID% Network type :%Network% Radio type :%Radio% Authentication :%Authentication% Cipher :%Cipher% Connection mode :%Connection% Channel :%Channel% Receive rate (Mbps) :%Receive% Transmit rate (Mbps) :%Transmit% Signal :%Signal% Profile :%Profile% Hosted network status :%Hosted% ИМЕНА ПЕРЕМЕННЫХ ВЫДЕЛИЛ ЖИРНЫМ ИХ ЗНАЧЕНИЕ - ВСЁ ЧТО ПОСЛЕ ":" Например, за "Physical address" он же "Физический адрес" отвечает переменная "%Physical%" Главное забыл, при таком раскладе имена переменных короткие и самое главное НЕ ПОВТОРЯЮТСЯ. |
|
Последний раз редактировалось wareznik3dll, 13-11-2020 в 13:13. Отправлено: 02:26, 13-11-2020 | #28 |
![]() Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать ![]() Или все же есть "косяки" ... И у кого же быстрее тоньше или короче ![]() ![]() |
Отправлено: 02:58, 13-11-2020 | #29 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать ну вот Вы и пришли к моему коду, иначе там никак. Да, я ни разу не говорил что код претендует на медаль и все такое, косяки есть и там, но они именно из-за кривого вывода Netsh Wlan Show Interfaces
Скрытый текст
"В системе 1 интерфейс" " " " Имя" " xxxxxxxxxx" " Описание" " [CommView] Atheros AR9285 Wireless Network Adapter" " Идентификатор GUID" " xxxxxxxxxxxxxxxxxxxxxxxxxxxx" " Физический адрес" " xxxxxxxxxxxxxxxxx" " Состояние" " Подключено" " SSID " " xxxxxxxxx" " BSSID " " xxxxxxxxxxxxxxxxx" " Тип сети" " Инфраструктура" " Тип радио" " 802.11g" " Проверка подлинности" " WPA2-Personal" " Шифр" " CCMP" " Режим подключения" " Автоматическое подключение" " Канал" " 1" " Скорость приема (Мбит/с)" " 36" " Скорость передачи (Мбит/с)" " 36" " Сигнал" " 100% " " Профиль " " xxxxxxxxx " " Состояние размещенной сети" " Недоступно" Мне тоже очень не нравится наблюдать в коде строку: и всего что с ней связано, но повторюсь, это все из-за кривого вывода, иначе вообще была бы одна строка кода и далее блок echo по поводу - требования не поменяются то нужен укр язык, то определенная кодировка, то нужный размер окна, все это навевает на мысли что код готовят для запуска в массы и вот там требования как раз таки и могут поменяться аж бегом и надо быть готовым к выводу любой строки из всего вывода команды. Или делать код так чтобы это было легко повторяемо пользователем или очевидно. А вырвать что-то из контекста и опираясь на вывод сделать это досягаемым максимально просто и удобно не выход, самому потом придется что-то доделать или изменить и надо будет сызнова разбираться с кодом и выводом чтобы понять почему не работает вроде бы очевидное. |
Отправлено: 14:04, 13-11-2020 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - Усиление Wi-Fi сигнала | weritos | Сетевое оборудование | 3 | 13-03-2014 08:49 | |
Прочее - Приоритетное использование сигнала WI-FI | 2gan | Сетевые технологии | 36 | 27-06-2013 17:30 | |
Broadcom анонсировала чипы 5G Wi-Fi для устройств начального уровня | OSZone News | Новости железа | 1 | 25-05-2013 16:02 | |
Wireless - Всплеск сигнала Wi-Fi | westland77 | Сетевое оборудование | 6 | 12-07-2012 13:05 | |
Доступ - Слабый уровень сигнала WI-FI | Grafnet | Microsoft Windows Vista | 0 | 10-11-2009 17:51 |
|