wareznik3dll
07-11-2020, 23:21
Есть код для проверки состояния 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) то-есть код должен быть сохранен именно в этой кодировке.
Благодаря всем неравнодушным резальтат был добит таким кодом:
@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)
)
@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
@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) то-есть код должен быть сохранен именно в этой кодировке.
Благодаря всем неравнодушным резальтат был добит таким кодом:
@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)
)
@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